no image
[책] 파이썬 자료구조와 알고리즘
오랜만에 쓰는 책 리뷰. 최근 한 기사에서 엔지니어들이 가장 선호하는 프로그래밍 언어 1위를 발표하였다. 바로 "파이썬"이다. 아래는 그와 관련된 기사이다. http://www.zdnet.co.kr/view/?no=20190910151612 엔지니어가 가장 선호하는 프로그래밍 언어 1위는 '파이썬' 엔지니어들이 가장 선호하는 프로그래밍 언어 1위는 파이썬인 것으로 조사됐다.​미국 국제전기전자기술자협회(IEEE)가 발간하는 공학 및 응용과학 전문지 IEEE스펙트럼은 9일(현지시간) '세계 프로그래밍 ... www.zdnet.co.kr 미국 국제전기전자기술자협회(IEEE)가 발간하는 공학 및 응용과학 전문지 IEEE스펙트럼은 9일(현지시간) '세계 프로그래밍 언어 순위 2019'를 발표했다. IEEE는 일반..
2019.09.15
[Object Detection] Darknet python
Darknet 프레임 워크를 이용하여 Python3 환경에서 Video 영상을 입력으로 Object Detection을 하는 방법이다. 이 때, Darknet 소스코드에 있는 darknet/python/darknet.py 파일을 이용하여 바로 video 영상을 입력 받을 수 없다. 소스코드를 보면 알겠지만, 단지 이미지 패스를 통해 detect 함수에서 이미지를 불러오고 있다. 이 때 nparray to image 과정이 필요하다. 바로 video 영상을 입력 받을 수 있도록 하는 방법을 소개한다. 1. 소스코드 다운 $ git clone https://github.com/pjreddie/darknet.git https://github.com/pjreddie/darknet.git pjreddie/dark..
2019.09.04
no image
[Object Detection] Darknet 학습 시 적절한 Weight 고르기
When should I stop training: Usually sufficient 2000 iterations for each class(object). But for a more precise definition when you should stop training, use the following manual: During training, you will see varying indicators of error, and you should stop when no longer decreases 0.XXXXXXX avg: Region Avg IOU: 0.798363, Class: 0.893232, Obj: 0.700808, No Obj: 0.004567, Avg Recall: 1.000000, co..
2019.09.04
no image
[Pose Estimation] COCO Dataset Annotation Tool
COCO Keypoint 데이터 세트를 만들기 위해 아래와 같은 툴을 사용 할 수 있다. Supervisely Visipedia 1. Supervisely 회원 가입 후, 프로젝트를 생성하여 사진을 불러와 주석을 달 수 있다. 먼저 박스를 쳤을 때 포즈 모델이 어떻게 구성될건지 정의해주는 작업이 필요하다. 웹 기반으로 되어있으며, 포즈모델 이외에도 다양한 라벨링 작업을 수행 할 수 있다. 깃허브 https://github.com/supervisely/supervisely supervisely/supervisely AI for everyone! :tada: Neural networks, tools and a library we use in Supervisely - supervisely/supervisely..
2019.08.28
no image
[Object Detection] Convert Darknet yolov3 model to keras model
Darknet Yolo v3 의 .weights 파일을 Keras의 .h5 로 변환하는 방법인데, 클래스는 제대로 찾을 수 있지만 (사람, 바이크 등) 아무래도 프레임워크간의 변환이니 정확도(box score)가 손실된다. 또한, Keras가 Tensorflow에 내장되면서 Yolo v3 모델을 Keras 모델로 바꾸는 코드들이 Cuda 9.0 을 지원하거나, 잘못된 코드들을 가지고 있는 경우가 있다. (Yolo v2 모델 변환하는 방법은 잘 나와있는 듯) 그래서 변환하지 않는 방법을 추천한다. 변환하지않고, 그냥 darknet 프레임워크를 이용하여 실행하는 방법을 추천한다. 1. python 에서 darknet 프레임워크를 사용하여 weights, cfg , ... 파일들을 불러와 실행하는 방법 htt..
2019.08.19
no image
[Object Detection] 객체 탐지를 위한 데이터 주석 Yolo 형식으로 변환하기
https://github.com/ssaru/convert2Yolo ssaru/convert2Yolo This project purpose is convert voc annotation xml file to yolo-darknet training file format - ssaru/convert2Yolo github.com 위 깃허브 저장소에서 아래와 같은 데이터 세트들의 주석 파일을 Yolo 프레임워크에 맞게 변환 할 수 있다. COCO VOC UDACITY Object Detection KITTI 2D Object Detection 필자는 person.names 를 생성하고, COCO 데이터 세트의 (train2017, val2017) 이미지 정보가 담긴 json 주석 파일들을 yolo 형식(txt)..
2019.08.19
no image
[Pose Estimation] Through-Wall Human Pose Estimation Using Radio Signals
Pose Estimaiton 분야에서 Occlusion(폐색) 문제를 해결 해 볼 수 있는 흥미로운 주제를 발견하였다. MIT에서 연구중인 RF-Pose 인데, 이는 벽에 의해 사람이 가려지는 현상이 일어나더라도 정확하게 자세를 추정 할 수 있다. WiFi 주파수의 무선 신호가 벽을 통과하면서 인체에 반사되는 기술을 이용한 방법이다. 비전 기반 기술 만큼 정확하다고 말하고 있다. 같은 시간에 발생한 Vertical Heatmap 과 Horizontal Heatmap 을 결합한 RF Heatmap 정보를 이용하는데, 이는 폐색 현상을 해결 할 뿐만 아니라 어두운 공간에서 까지 정확하게 인간의 자세를 추정해낼 수 있다. 또 흥미로운 것은 일반적으로 자세 추정 분야에서의 평가 측정은 PCKh 와 OKS 를 이..
2019.08.19
no image
[책] 최고 성능을 구현하는 10가지 검증된 기법, Optimized C++
올해 7월에 출간된 Optimized C++ (C++ 최적화) 책에서는 C++ 이라는 언어를 생각해보면 "필요한 기능은 모두 구현해놓을테니 여러분이 만들고 싶은 코드를 원하는대로 만들어 보세요" 라는 느낌이 든다고 필자는 말하고 있었다. 사실 시중에 C++ 언어를 배우기에 좋은 책만 나와있지, 최적화 라는 분야를 다루는 책은 거의 없다. 그런데 이번에 고맙게도 한빛미디어에서 Optimized C++ 책을 출시해주었다. 앞으로도 희소하면서도 메리트 있는 분야를 다루는 책이 많이 출간되었으면 좋겠다. 또한 이 책을 학부 4학년 때 배울 수 있었더라면 어땠을까 하는 생각도 드는데, 그런 생각 보다는 이미 시간은 지나갔으니 지금 당장 공부하는 것이 낫다는 생각도 든다. 모든 개발자에게 있어 C++을 다루는 사람..
2019.08.09
no image
[Activity Recognition] 쓰러짐(Fall Down)행동 인식 관련 데이터 세트
Fall Down 관련 논문 UP-Fall Detection Dataset: A Multimodal Approach https://www.mdpi.com/1424-8220/19/9/1988 UP-Fall Detection Dataset: A Multimodal Approach Falls, especially in elderly persons, are an important health problem worldwide. Reliable fall detection systems can mitigate negative consequences of falls. Among the important challenges and issues reported in literature is the difficulty of..
2019.08.05
[CUDA] PyCUDA documentation
간단한 예제 import pycuda.autoinit import pycuda.driver as drv import numpy from pycuda.compiler import SourceModule mod = SourceModule(""" __global__ void multiply_them(float *dest, float *a, float *b) { const int i = threadIdx.x; dest[i] = a[i] * b[i]; } """) multiply_them = mod.get_function("multiply_them") a = numpy.random.randn(400).astype(numpy.float32) b = numpy.random.randn(400).astype(numpy...
2019.08.04
[Python] Python -m 의 의미
파이썬에서 모듈을 실행한다는 뜻 보통 아래와 같이 pip 를 python3 또는 python2 에서 적절하게 실행하고자 할 때 사용함 python2 -m pip install pycrypto python3 -m pip install pycrypto 참고자료 1 : 파이썬 모듈 설치하기 https://docs.python.org/ko/3/installing/index.html 파이썬 모듈 설치하기 — Python 3.7.4 문서 파이썬 모듈 설치하기 이메일 distutils-sig@python.org 널리 사용되는 공개 소스 개발 프로젝트로서, 파이썬에는 적극적으로 지원하는 기여자와 사용자의 커뮤니티가 있어, 자신들의 소프트웨어를 공개 소스 라이센스 계약에 따라 다른 파이썬 개발자가 사용할 수 있도록 합니..
2019.08.04
[TensorFlow] Graph 에서 dropout 을 제거하는 방법
흔히들 드롭 아웃을 적용하여 네트워크를 설계하는데 다른 플랫폼에서 고정된 그래프를 사용하고자 할 때 다음과 같은 오류가 발생한다고 한다. Invalid argument: No OpKernel was registered to support Op 'RandomUniform' with these attrs. Registered devices: [CPU], Registered kernels: [[Node: dropout/random_uniform/RandomUniform = RandomUniform[T=DT_INT32, dtype=DT_FLOAT, seed=0, seed2=0](dropout/Shape)]] 이 때 만들어진 pb 파일을 이용하여 드롭 아웃을 제거하는 과정을 거친다. How to remove dr..
2019.08.03