안녕하세요.  평생개발자 입니다.

 

예전에 연구하면서 발표한 자료 입니다.


카메라에서 발생되는 오차를 외부에서 얻은 데이터를 fusion하여 오차를 갱신 하는 방법을 제안하고, 실험된 자료 입니다.


내용을 압축해서 말씀드리자면, 

카메라 외부 파라미터에서 카메라 회전에 관전된 부분과 IMU의 센서에 나온는 각도를 결합하여 Top View 의 영상처리를 유리하게 만든것 입니다.


용도는 흔들리는 자동차에서 차선을 유리하게 검출 할 수 있도록 하는것 입니다. 

다른 용도로도 사용될 수 있겠지요. 


데이터를 찾을수가 없어서 일단 영상부터 업로드 합니다. ^^










좀더 연구해서 내용 정리하기! 






안녕하세요.^^  평생개발자 입니다. 

오늘은 Bilateral Filtering 관해서 간단하게 정리!


Bilateral Filtering이란 Edge를 보존한 비선형 필터링이라고 말씀 드릴 수 있습니다. 다시 말해서 특징은 유지한체로 노이즈를 줄일 때 사용될 수 있습니다.

일반적으로 블러링을 취하게 되면 Edge값이 뭉개져 특징으로서 사용될 수 없게 됩니다.




http://www.coldvision.io/2016/01/21/bilateral-filtering-with-cuda-and-opencv-3-x/


Joint Bilateral Upsampling

http://johanneskopf.de/publications/jbu/index.html


Wiki Bilateral filter

https://en.wikipedia.org/wiki/Bilateral_filter


Bilateral Filtering for Gray and Color Images (참조)

http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.html#[1]





Rigid Transform : 형태는 유지하고, 회전과 이동 변환


강체(Rigid)는 2개의 모션벡터만 있다면 변환이 가능합니다.  즉 2개의 좌표점을 이용해서 변환 하기 때문에 변환에 제약이 있다고 생각하시면 되겠습니다. 여기서 포인트는 형태가 변하지 않는다는 것 을 포인트로 생각하면 됩니다. 즉 정사각형은 계속 정사각형이어야 하는 것 입니다.  ^_^


그림<1> 


유사변환 (Similarity Transformation)은 강체(그림<1>) 에서 크기(Scale) 성분이 추가 된것으로 

크기 발생시 이동성분이 변하는 점이 있습니다. 하지만 회전,형태 성분은 고정됨니다. 


Rigid Transform 

 

(1)


수식 (1) 를 통해 이미지 회전좌 이동을 동시에 계산 합니다.  여기서 이동은 없고 회전만 발생된다면 이미지가 중심에서 회전 할까요?

답은 아님니다. ㅎㅎ   유클리디안 좌표 기준으로 이미지 출발점 0점을 기준으로 회전됨니다.



Inverse Rigid Transform

(2)


Similarity Transformation

(3)



(4)





Homography Transform : Projection Transform

형태와 회전, 회전, 이동 을 전부 포함하는 변환


자유도가 8


그림<2>




Homography Transform


Inverse Homography Transform









좀더 자세한 내용은 참조 바람니다. 






참조 : 

https://sensblogs.wordpress.com/2011/08/23/quick-reviews-on-local-descriptors-sift-and-single-object-recognition-by-fei-fei-li/
http://darkpgmr.tistory.com/79





'영상처리' 카테고리의 다른 글

3D 정합 ICP(Iterative closest point)  (1) 2016.11.29
Bilateral Filtering  (0) 2016.11.20
Horn and Schunck Flow 구현 및 회전중심 찾기  (0) 2016.07.06
영상처리 UI Tool  (0) 2016.07.06
StereoVision  (0) 2016.06.26

정리전.




keyword

Optical flow, orthogonal vector, Normal Vector, Least Square



'영상처리' 카테고리의 다른 글

Bilateral Filtering  (0) 2016.11.20
강체(Rigid)와 호모그래피(Homography) 변환  (1) 2016.07.28
영상처리 UI Tool  (0) 2016.07.06
StereoVision  (0) 2016.06.26
RGB sobel edge detection CPU, GPU Test  (0) 2016.05.29

예전에 만든 영상처리 구동 틀 입니다.  기능은 포함되어있지 않으며 QT 기반 UI Tool를 만들었습니다. 


최대한 단순한 인터페이스를 고려 하였습니다.


SJ_Vision32.exe












저는 초기에 영상처리 공부할때 반복적인 코딩보다는 UI 틀을 만들어서 코드를 정리합니다.

필요한 기능을 Item 으로 선택해서 필요할때 코드 수정없이 실험할 수 있도록 하는것이 목표 입니다. ^^









 한참 공부할때 Stereo camera 프로그램을 개발 했었습니다. 


QT기반으로 프레임을 구성했습니다. 



일반 PC캠 2개와 자이로센서(imu sensor)를 설치해서 카메라 움직임을 감지합니다.




이전에 캡춰한 데이터를 사용하여 캘리브레이션을 사용하고, 완전한 캘리브레이션이되면, 내부, 외부 파라미터값을 바이너리로 저장하여 관리합니다.
이미지에 보이는 라인들은 epipolar line 입니다. 



일정 Distance 안에 들어오면 color로 표현합니다. 


16bit range에서 특정 범위를 8bit로 resampling 합니다.





GPU 와 CPU 속도 비교


CPU 와 GPU 둘다 단일 연산자만들 이용하여 구현 하였으며 백터 연산자는 사용하지 않았습니다.


해상도 : 1280 x 960

CPU : I7 2600

RAM : 16GB 1600Mhz

GPU : GTX 550 Ti


연산양을 크게 하기 위해 RGB 3채널을 이용하며 3 x 3 sobal kernel을 연산 합니다. 이후 정규화 과정을 가짐니다.


openCL - GPU



CPU




CPU : 0.265013

GPU : 0.012662

0.265013 / 0.012662 = 20.92978


GPU가  20.92978 배 빠르다는것을 알 수 있습니다.



GPU성능이 크게 발전함에 따라 이 격차는 더욱 벌어질것이라 생각됨니다.

GTX 550 Ti -> GTX 960

Memory Bandwidth : 98.4GB/s -> 112GB/s

CUDA Core 192 -> 1024




생각해보니 CPU에서는 단일 명령어와 단일 쓰레드에서 동작 하기때문에 느릴 수 밖에 없고 그에 비해서 GPU는 다중 쓰레드에서 동작 한다고 볼 수 있기때문에 지금의 비교는 무의미해 보입니다. 적어도 CPU에서는 openMP 라도 사용해서 비교할걸 그랬습니다.

SIMD 연산을 하지 않았기때문에 OpenCV와 비교해서도 느린 결과를 가지게될 것입니다.



기회가 된다면 인텔 제온 PI 를 가지고서 실험을 해보고 싶네요.ㅎ










연구중인 왜란에 강인한 영상 안정화기법








RANSAC 알고리즘 테스트

궤적 

 - 빨강색 X축

 - 녹색 Y축




제안한 영상 안정화 테스트






제안하는 기법 + 칼만필터  1

궤적 

 - 빨강색 X축

 - 녹색 X축 칼만필터





제안하는 기법 + 칼만필터  2







제안하는 기법 + 칼만필터 (속도개선 및 노이즈 감소)

'영상처리' 카테고리의 다른 글

강체(Rigid)와 호모그래피(Homography) 변환  (1) 2016.07.28
Horn and Schunck Flow 구현 및 회전중심 찾기  (0) 2016.07.06
영상처리 UI Tool  (0) 2016.07.06
StereoVision  (0) 2016.06.26
RGB sobel edge detection CPU, GPU Test  (0) 2016.05.29

+ Recent posts