์ต๊ทผ์ ์ฐ๋ถํฌ 16.04 ์์คํ ์ opencv 3.2๋ฅผ ์ค์นํ๊ณ opencv ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ C ์ฝ๋๋ฅผ ์คํํ๋ ค๊ณ ํ์ต๋๋ค. ๋ค์ ๋ฌธ์ ๋ก ์ธํด ์ฝ๋๊ฐ ์ปดํ์ผ๋์ง ์์ต๋๋ค.
/tmp/ccwgquWQ.o: In function `cvPointFrom32f':
try.c:(.text+0x54d): undefined reference to `cvRound'
try.c:(.text+0x563): undefined reference to `cvRound'
/tmp/ccwgquWQ.o: In function `cvReadInt':
try.c:(.text+0xe68): undefined reference to `cvRound'
/tmp/ccwgquWQ.o: In function `cvEllipseBox':
try.c:(.text+0x10d4): undefined reference to `cvRound'
try.c:(.text+0x10f6): undefined reference to `cvRound'
collect2: error: ld returned 1 exit status
๋๋ stackoverflow์์ ์ด๊ฒ๊ณผ ๊ด๋ จ๋ ์ง๋ฌธ์ ํ๊ณ ๋๋ opencv3.2์ ์กด์ฌํ๋ ๋ฒ๊ทธ๋ผ๋ ์๋ต์ ๋ฐ์์ต๋๋ค. [http://stackoverflow.com/questions/42918747/yolo-c-compilation-failure-with-debug-1]
๋ฒ๊ทธ๋ผ๊ณ ๋ถ๋ฅด๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
CvRound ํจ์๋ opencv2์ types_c.h์ ์ ์๋์ด ์๋ ๋ฐ๋ฉด opencv3์ ๊ฒฝ์ฐ types_c.h๊ฐ ์๋๋ผ core/fast_math.hpp์ ์ ์๋์ด ์์ต๋๋ค. types_c.h์ ์ ์๋์ง ์์์์๋ ๋ถ๊ตฌํ๊ณ fast_math.hpp์ ๋ํ ์ฐธ์กฐ ์์ด ์ฌ์ ํ types_c.h, core_c.h ๋ฐ imgproc_c.h์์ ํธ์ถ๋ฉ๋๋ค.
types_c.h, core_c.h ๋ฐ imgproc_c.h์ "fast_math.hpp" ๊ฒฝ๋ก(#include core/fast_math.hpp)๋ฅผ ํฌํจํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๊ณ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ํด๊ฒฐํ์ญ์์ค.
C ์ฝ๋๋ฅผ ์คํ
OpenCV๋ C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ง์ C ์ปดํ์ผ์ ๋ํ ์ง์์ด ์์ผ๋ฉฐ ์๋ํ์ง ์์ต๋๋ค(๊ฐ๋ ์ถฉ๋, cvGetSize(#6221) ๋ฌธ์ ์ฐธ์กฐ). ๋ํ OpenCV C API๋ ์ ๊ฑฐ ํ๋ณด์ ๋๋ค.
OpenCV๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ก๊ทธ๋จ์ C++๋ก ์ปดํ์ผํด์ผ ํฉ๋๋ค.
์ ๋ง ์ด์ํฉ๋๋ค. CUDA ๋ฐ OpenCV๋ฅผ ์ฌ์ฉํ์ฌ C๋ก ๊ตฌํํ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ฌํ ๊ตฌํ์ ์ด๋ป์ต๋๊น? ์: ์๋ก
YOLO์ ๊ดํด์๋ ํนํ https://stackoverflow.com/a/46808785/2953509 ๋ต๋ณ์ ์ฐธ์กฐํ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ ๋ง ์ด์ํฉ๋๋ค. CUDA ๋ฐ OpenCV๋ฅผ ์ฌ์ฉํ์ฌ C๋ก ๊ตฌํํ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋ฉฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ฌํ ๊ตฌํ์ ์ด๋ป์ต๋๊น? ์: ์๋ก