Opencv: opencv 3.2์˜ cvRound์— ๋Œ€ํ•œ ์ •์˜๋˜์ง€ ์•Š์€ ์ฐธ์กฐ

์— ๋งŒ๋“  2017๋…„ 03์›” 23์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: opencv/opencv

์‹œ์Šคํ…œ ์ •๋ณด(๋ฒ„์ „)
  • OpenCV => 3.2
  • ์šด์˜ ์ฒด์ œ / ํ”Œ๋žซํผ => linux Ubuntu 16.04 64๋น„ํŠธ
  • ์ปดํŒŒ์ผ๋Ÿฌ => gcc
์ƒ์„ธ ์„ค๋ช…

์ตœ๊ทผ์— ์šฐ๋ถ„ํˆฌ 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)๋ฅผ ํฌํ•จํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค.

duplicate wontfix

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ •๋ง ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. CUDA ๋ฐ OpenCV๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ C๋กœ ๊ตฌํ˜„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ๋Ÿฌํ•œ ๊ตฌํ˜„์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์˜ˆ: ์šœ๋กœ

๋ชจ๋“  3 ๋Œ“๊ธ€

C ์ฝ”๋“œ๋ฅผ ์‹คํ–‰

OpenCV๋Š” C++ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ง์ ‘ C ์ปดํŒŒ์ผ์— ๋Œ€ํ•œ ์ง€์›์ด ์—†์œผ๋ฉฐ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ฐ€๋” ์ถฉ๋Œ, cvGetSize(#6221) ๋ฌธ์ œ ์ฐธ์กฐ). ๋˜ํ•œ OpenCV C API๋Š” ์ œ๊ฑฐ ํ›„๋ณด์ž…๋‹ˆ๋‹ค.

OpenCV๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ C++๋กœ ์ปดํŒŒ์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ •๋ง ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. CUDA ๋ฐ OpenCV๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ C๋กœ ๊ตฌํ˜„ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฉฐ ๋„๋ฆฌ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ๋Ÿฌํ•œ ๊ตฌํ˜„์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์˜ˆ: ์šœ๋กœ

YOLO์— ๊ด€ํ•ด์„œ๋Š” ํŠนํžˆ https://stackoverflow.com/a/46808785/2953509 ๋‹ต๋ณ€์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰