목록영상처리 (6)
DY의 세상구경
머신러닝/딥러닝을 하는데 역시 가장 공수가 많이 드는 일은... 데이터 labeling이 아닐까 싶다. 이런툴 저런툴 만들어서, 얻어다가 사용해 봤는데, 최근 darknet을 사용하게 되면서 framework 별로 사용하는 데이터 format이 다른데... 이런것까지 지원하는 annotation tool이 어디 없을까 하다가 예전 cntk를 보던 중 얼핏 봤던 VoTT (Visual Object Tagging Tool)을 다운받아 사용해 보았다. 마소도 역시.. 깃헙에 다 올린다. ( VoTT github )대충 설명은... 이걸로 태깅을 하고 모델을 트레이닝 시키고.. 에러 수정하고 약간 semi-auto tagging..? 도 된다고 하는것 같다. https://github.com/Microsoft/..
오래간만의 포스팅. 요즘 딥러닝을 이용한 여러 Object Detection 알고리즘을 구경하는데, 대부분 NMS (non-maximum suppression)을 사용하여 연산량을 줄이고, mAP도 올리는 효과를 본다고 한다. 물론 필수로 필요한 것은 아니나 확실히 성능향상에 도움이 되는 것 같다. 사실 생각해보면 별건 아니었는데, 예전 영상처리에서 특히 canny edge detector같은데서 보았던 NMS와 헷갈려서... 이해하는데 시간이 꽤나 걸렸다. 사실 비슷한? 거의 동일한 방법인데, 픽셀이나 바운딩박스냐에 따라 나뉘는 것 같다. 일반적으로 영상에지를 찾기 위한 NMS는 현재 픽셀을 기준으로 주변의 픽셀과 비교했을 때 최대값인 경우 그대로 놔두고, 아닐 경우(비 최대) 억제(제거)하는 것이다...
개인적으로 WPF를 잠깐 써본적도 있고... 툴도 만들 계획이므로 opencv wrapper인 opencvsharp을 연동해 보았다. Visual Studio 2015 / opencvsharp 3.1기준 아마 2015버전의 VS를 사용한다면 nuget 패키지 매니저가 설치되어 있을 것이다.(아마 설치할때 디폴트 옵션을 사용했던가.. 추가로 설치한 적은 없으니 아마... 그럴 것..) opencvsharp github (https://github.com/shimat/opencvsharp)를 들어가 보면(2016.11월 기준) 3.1까지 지원을 한다. opencv최신버전을 모두 지원한다. nuget을 이용하여 설치를 누르면 설치하는 방법이 나오는데 아래와 같다. 한글 VS 기준으로 도구 -> NuGet 패키..
이걸 사용할 일이 그다지 많지는 않을 것 같으나... 실험할 때 많이 사용할 수도 있을 것 같다. 개인적으로는 한가지 영상에 대해 여러가지 알고리즘을 이용해 테스트 한 결과영상 또는 중간영상을 뽑아냈을 때(동일한 영상이므로 전체프레임 수와 영상의 크기는 동일한 것으로 가정한다.)프레임별로 확인하고 싶은데 5개 알고리즘을 이용한다면 original영상까지 총 6개쯤 될텐데... 비디오플레이어를 6개 켜고 하기가 귀찮아서만들게 되었다.. 아마 opencv에서 지원하는 영상은 다 열릴것 같다. (주로 mpeg4 avi사용) 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657..
영상에서의 객체인식, 분류 등등의 알고리즘을 연구하고 구현해보며 느낀건... 대단한 수학자나 연구자가 아니기 때문에... 알고리즘에 들어가는 파라미터값을 조금씩 바꾸며 최적의 값을 찾는다거나(물론 대단한 수학자라면 수학공식을 이용해 이론적인 최적해를 찾을 것이다. 부럽다..)또는 조금씩 수정해보며 다른 더 좋은 방법을 찾는 등의 일이 많다는 것이다. 구현을 해봤으면 이론은 이론이고 실제는 또 다르기 때문에 이런저런 변경된 사항 별로 실제로 눈으로 보거나 차영상 등을 이용해 실험결과를 확인해보고 뭐가 더 좋으니 마니 이런걸 기록해가며... 연구했던 것 같다. 물론 내가 멍청해서 그런것 같지만... 뭔가 진짜 머리가 좋은 분들은 수학공식으로 증명해가며 바로 딱 나오지 않을까..? 결국 이렇게 실험하다 보면...
정밀도와 재현율 위키 확률 통계쪽 분야에서 사용한다고 들었는데, 영상쪽에서는 주로 인식률에 대한 지표로 사용한다.이를 알기 위해 먼저 네가지 지표를 알아야 하는데 아래 표와 같다. TP(True Positive), FP(False Positive), FN(False Negative), TN(True Negative)표를 보면 어렵지 않다. 객체 인식률을 확인한다고 하였을 때,1. TP : 객체가 있는데 정확히 인식한 경우2. FN : 객체가 있으나 인식하지 못한 경우3. FP : 객체가 없음에도 인식한 경우4. TN : 객체가 없는데 인식하지 않은 경우(사실 인식에서는 계산하기가.. )그림이 있다면 설명이 더 편해질 것 같다. (추후 추가 예정) 실제 정답 True False 실험 결과 Positive ..