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

오늘은 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]





한달동안 "저전력 서버" VS "상용 NAS" 중 고민중에....


결론 부터 말씀드리면 결국 귀차니즘 없으려면 상용 NAS로 가야겠다는 것 입니다. ㅎ

하지만, 가성비로 보면 아쉬운 점이 조금 있지만 상용은 신뢰가 있으니까 믿고 구매 했습니다.


사실 처음 NAS는 i사 NAS 였습니다. 근데 잘 사용하다가 1년만에 고장나버리더군요. 보증기간 만큼 동작 했습니다. ㅜㅜ


두번째 NAS 는 신뢰하는 시놀로 다시 믿고 시작합니다. 









적어도 2~3년동안 안정성에 신경쓰기 싫어서 HGST로 4TB 구매 했고, WD 2TB는 기존에 NAS에 사용된 하드디스크 입니다. 2TB는 중요한 데이터 백업용으로만 사용하고 절전모드로 동작하도록 하고 싶은데 아직 설정을 못찾았습니다.







'ETC' 카테고리의 다른 글

취미 공간 변천사  (0) 2017.11.05
3D Printer 구매 후기  (0) 2017.11.04
TOF 레이저 측정기 구매!!  (0) 2017.11.04
mi box pro 직구 후기!!!  (1) 2016.12.25
블라블라  (0) 2016.05.29

연구실 과제를 통해 Laser Scanner 설계 및 제작을 하였습니다. 

Spec

LDM (내부 DSP로 추정됨)

sampling : 2KHz 

거리 300m 반사판 3Km 

오차 2cm 

통신 : Serial

 

모듈 Servo motor (x사 모터) 내부 atxmega 탑재

분해능 : 12960 (360/12960 = 0.028˚)

RPM : 58

통신 : Serial

 

기가비트 카메라 

1280 x 960 50fps

 

 

연구 목적

 

레이저 스캔을 통해 산사태를 미리 예측하는 시스템이다. 이 시스템은 산사태 피해를 줄일 수 있도록 하는 시스템으로 사용될 수 있다.

 

 

 

실험

모터와 LDM의 동기화 실험.

 

 

 

 

 

설계

 

 

 

 

 

 

 

 

 

 

 

 

 

구동영상

 

 

 

 

 

 

 

 

 

결과 사진

 

건물 스캔 결과 입니다.  최대거리는 78m 이며 장거리 스캔한 모습.

좌측의 이미지는 거리와 각도로 표현한 데이터 이며 우측에는 2차원으로 투영된 데이터입니다. 거리 정보가 있기때문에 3D 표현이 가능합니다. 

 

 

 

아래의 데이터는 Median 중간값 필터를 통해 근사한 데이터로 분해능을 낮춘 과정 입니다.

좌측이미지는 거리정보를 pseudo color로 표현한 데이터 이며 , 우측은 60도각도로 투영된 영상 입니다.

 

 

사진과 같이 보면 Laser Scanner를 모르시더라도 조금은 감을 잡으실거라 믿습니다.

사진에서는 색상정보를 얻을 수는 있지만 거리 정보는 얻을 수 없겠죠?

Laser Scanner 를 만드는 최종 목표는 자신의 위치와 거리를 정확히 알 수 있어야 합니다.

 

 

 

 

 

상단에서 취득한 데이터를 3D로 표현한 영상 입니다. 실험중인 데이터라서 상하 라인 밀리는 문제가 있군요!

아무튼~ 2D 와 같이 거리에 따라 pseudo color로 표현하였습니다. (Median은 분해능을 떨어트리기 때문에 제)

 

 

 

 

 

 

 

 

 

 

앞으로의 발전

기회가 된다면 상용 3D Scanner에 한발 더 가까이 다가가고 싶습니다. 현제 시스템은 메인이 되는 부분은 독립된 PC가 제어하기때문에 상세한 컨트롤이 불가능 한 상태이며 모듈형 모터에서 기계적인 마모가 발생할 수 있는 현실 입니다.

필수 기술인 ToF(Time of flight)를 이용하여 장거리 레이저를 이용하여 거리를 계산 가능한 시스템을 개발 후 Laser Scanner내부에서 중앙 프로세서를 포함하려는 계획을 가지고 있습니다. 모터 제어부도 BLDC 또는 micro stepper motor를 이용하여 정밀 스캔이 가능 할 것이라 생각됩니다.

 

 

 

9/21일 (추가내용)
앞으로 3D Data를 정합하는 기법 ICP(iterative closest points)을 연구 해볼 예정 입니다.?3D?Scanner에서도?필요로 하는 기법이지만,??SLAM(Simultaneous localization and mapping)에서도 사용되고 앞으로도?연구하고 싶었던 분야입니다. 3차원 복원을 먼저 하고 싶었지만 우선 정합하는 기법부터 천천히 나아가도록 준비해야겠다는 생각입니다.

 

 

 

 

 

 

 

 

 

 

'취미 > Fusion' 카테고리의 다른 글

Nao and DARwin  (0) 2016.07.06
블루투스멀티탭 제작.  (24) 2016.05.23
2-wheel Balance robot  (0) 2016.05.23
korea portfolio day - 와인병 연주기  (0) 2016.05.18

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

가지고 있는 카메라모듈 OV7670, OV2640을 가지고 있습니다.

우선 OV7670 모듈을 이용하여 LCD에 출력하였습니다.


LCD는 SPI 통신을 이용하여 출력합니다.  stm32f427에는 TFT Driver가 포함되어 있어서 고속으로 출력하고 싶었지만, 카메라인터페이스 DCMI 와 포트가 중복됩니다. ㅠㅜ

아무튼 지금까지 공부를 통해서 카메라 영상을 얻어왔습니다.

카메라 초기 설정으로 I2C(SCCB)를 이용하여 세팅 후 DCMI를 통해 30FPS 속도로 영상을 취득할 수 있습니다.(QVGA)




Gray Level 로 출력한 결과



Gray Level -> Gradient 영상 x 2

곱하기를 해서 분해능이 떨어져 보이지만 LCD로 출력하기 위함이구요. 기본적으로 영상 미분을 통해서 충분히 방향성을 구할 수 있습니다.




목표는 Line Laser Scanner 를 만들어 보려고 구상하고 있습니다. 하지만 생각보다 MCU 성능이 안나오네요.


DSP기능을 이용하여 성능을 최대한 이용할 생각 입니다.


'취미 > HW' 카테고리의 다른 글

hand Tracking and robot hand  (0) 2016.12.22
공부 계획중인 ARM, MSP430  (0) 2016.07.12
1D-Laser Distance Sensor - (2)  (1) 2016.06.22
1D-Laser Distance Sensor - (1)  (6) 2016.06.22
8 Stage Coil Gun  (1) 2016.05.30

 그동안 영상처리 공부에 매진하여 하드웨어만 손댈 시간이 없었습니다. 석사 졸업과 동시에 취업을 앞두고도 있지만, 취업준비 시간 쪼개서 하드웨어 공부하고 있습니다.



아래의 보드는 ST사의 Cortex m4 보드입니다. 신호처리 및 센서고속 신호처리에 응용해보려고 예전부터 공부하려고 벼르고 있었던 녀석들입니다.

오른쪽의 stm32f429는 DSP가 탑재되어 있죠. 그리고 stm32f4에서는 FPU가 기본 탑재되어 있습니다.

탑재된 DSP는 SIMD를 지원하고 다양한 수학함수를 가지고 있습니다. 예를 들어 Matrix, filtering, Vactor, Statistics 등..

성능이 제일 높은 stm32f429보드를 이용해서 영상처리를 해보려고 합니다. 



국내에서 LM사 컨퍼런스때 받은 보드입니다. 5년 정도 된것 같아요.

예전에 공부할 때 기억으로는

내장된 보드를 이용해서 다운로드 하기 쉽지 않았습니다.

LM보드 중에서 LM3S8962아직도 보드네이밍을 기억합니다. 많이 고생해서 ㅎㅎ

다양한 기능탑제되어 있고 이더넷을 이용한 IoT전원 컨트롤 만들 때 이용했었습니다.



이 보드도 컨퍼런스때 받은 보드 입니다. 고속램으로 하나의 통합 고속저장소를 이용한다고 듣었던 기억이 남니다. 저전력이며 IoT를 준비하기 위해 공부하면 괜찬을것 같습니다.



LM사에서 판매한 나름? 스마트워치 입니다. MSP430을 이용해 개발되어 졌습니다.

전문대학 다니던 시절에 교수님이 선물주셨습니다.



ALTERA사의 FPGA 보드입니다 보드는 대학원 공부하면서 호기심에 구매하였습니다.

중국에서 만들어졌으며 제공하는 예제도 다 중국말입니다. ㅠㅜ

그래도 공부하겠다고 좀 덤벼보았지만, 생각보다 진입장벽이 있습니다. FPGA 구조를 조금 이해한 정도로 다음에 공부하는 걸로 서랍 속으로...


'취미 > HW' 카테고리의 다른 글

hand Tracking and robot hand  (0) 2016.12.22
STM32f429 보드 실험 - Camera 구동  (11) 2016.07.12
1D-Laser Distance Sensor - (2)  (1) 2016.06.22
1D-Laser Distance Sensor - (1)  (6) 2016.06.22
8 Stage Coil Gun  (1) 2016.05.30

두 로봇 다 LINUX OS 기반으로 동작합니다.

먼저 다윈인 경우x86기반의 임베디드보드를 사용하고 모터를 제어하기 위한 mid 보드가 존재합니다.

오픈 소스답게 라이브러리를 사용하지 않고 전부 Low Level로 구현되어 있습니다.

다윈을 분석하면서 워킹하는 부분은 잘 만들어 져 있습니다. 모션센서값에 따라 자세 유지를 할 수 있고 걷기 위한 파라메터 값을 손쉽게 수정할 수 있도록 개발되어 졌습니다.



나오 로봇인 경우 제공하는 소프트웨어가 단순합니다. 나쁜 의미에서가 아니라 모르는 사람이 조작하더라도 UX가 잘 고려되어있기 때문에 저장되어있는 모션움직임 순서 도를 쉽게 그릴 수 있습니다.

머리 부분에 정전식 터치 센서가 있으며 견고하게 만들어져있지 못하다는 단점이 있습니다.

특이한 TTS를 가지고 있고 제공하는 웹을 통해 로봇을 업데이트 할 수도 있습니다.

나오는 다윈처럼 개발에 목적을 둔 것보다 좀 더 상품화가 잘 되어 있습니다.






NAO





DARwin



'취미 > Fusion' 카테고리의 다른 글

3D Laser Scanner 개발  (5) 2016.09.21
블루투스멀티탭 제작.  (24) 2016.05.23
2-wheel Balance robot  (0) 2016.05.23
korea portfolio day - 와인병 연주기  (0) 2016.05.18

정리전.




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 합니다.





+ Recent posts