๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

๐Ÿ’ป Programming/Computer Vision12

[python] 3์ฐจ์› ๊ณต๊ฐ„ ํšŒ์ „ ๋ณ€ํ™˜ | scipy Rotation scipy์˜ Rotation ํด๋ž˜์Šค๋Š” 3D ๊ณต๊ฐ„์—์„œ์˜ ํšŒ์ „ ๋ณ€ํ™˜์„ ๋‹ค๋ฃจ๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ํšŒ์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” ํ–‰๋ ฌ๋กœ๋ถ€ํ„ฐ ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ํšŒ์ „์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ถ•๊ณผ ๊ฐ๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํšŒ์ „์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์„œ 3D geometry๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘์—๋„ Rotation.apply() ๋ฉ”์„œ๋“œ๋ฅผ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” ํšŒ์ „๋œ ๋ฒกํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ์€ ๋ฒกํ„ฐ์— ํšŒ์ „ ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ, ์ˆ˜์‹์ ์œผ๋กœ๋Š” ์œ„์™€ ๊ฐ™์ด ๊ธฐ์กด ๋ฒกํ„ฐ์— ํšŒ์ „ํ–‰๋ ฌ(R)์„ ๊ณฑํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. ํšŒ์ „ ํ–‰๋ ฌ์„ ๋ฒกํ„ฐ์— ๊ณฑํ•จ์œผ๋กœ์จ ํšŒ์ „๋œ ๋ฒกํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. Rotation.inv().apply() ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํšŒ์ „ ํ–‰๋ ฌ์˜ ์—ญํ–‰๋ ฌ์„ ๋ฒกํ„ฐ์— ์ ์šฉํ•˜์—ฌ ํšŒ์ „ ํ–‰๋ ฌ์˜ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „์‹œํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฝ”๋“œ ์˜ˆ์ œ fr.. 2024. 3. 29.
[Meta AI] SAM (Segment Anything Model) ์‚ฌ์šฉ ๋ฐฉ๋ฒ• | ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ๋ถ„ํ• ํ•˜๋Š” Vision AI ๋ชจ๋ธ SAM (Segment Anything Model) Meta ์—์„œ SAM (Segment Anything Model) ์ด๋ผ๋Š” ์–ด๋–ค ๊ฒƒ์ด๋“  ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋ธ์„ ๊ณต๊ฐœํ–ˆ๋‹ค. ๋…ผ๋ฌธ ์ œ๋ชฉ ์ž์ฒด๊ฐ€ 'Segment Anything' ์ธ๋ฐ ๊ต‰์žฅํžˆ ์ž์‹ ๊ฐ ๋„˜์น˜๋Š” ์›Œ๋”ฉ์ด๋‹ค. ๊ฐ„๋‹จํ•œ ์„ค๋ช…์„ ์‚ดํŽด๋ณด๋ฉด, SAM์€ point๋‚˜ box์™€ ๊ฐ™์€ ์ž…๋ ฅ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ†ตํ•ด ๊ณ ํ’ˆ์งˆ ๊ฐ์ฒด ๋งˆ์Šคํฌ๋ฅผ ์ƒ์„ฑํ•˜๋ฉฐ ๋ชจ๋“  ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋งˆ์Šคํฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ์•ฝ 1,100๋งŒ ๊ฐœ์˜ ์ด๋ฏธ์ง€์™€ 11์–ต ๊ฐœ์˜ ๋งˆ์Šคํฌ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ํ•™์Šต๋˜์—ˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ segmentation task์—์„œ ๊ฐ•๋ ฅํ•œ zero-shot ์„ฑ๋Šฅ์„ ๋ณด์ธ๋‹ค๊ณ  ํ•œ๋‹ค. Segment Anything ์›น๋ฐ๋ชจ Segment Anything Meta AI Computer .. 2023. 4. 21.
[OpenCV] Feature Detection & Matching | ํŠน์ง• ๊ฒ€์ถœ๊ณผ ๋งค์นญ | ์ด๋ฏธ์ง€์—์„œ ์œ ์‚ฌํ•œ ํŠน์ง• ์ฐพ์•„๋‚ด๊ธฐ | ์ด๋ฏธ์ง€ ๋Œ€์‘์  Feature Detection & Matching ์ปดํ“จํ„ฐ๋น„์ „ ๋ถ„์•ผ์—์„œ์˜ feature matching์€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์ด๋ฏธ์ง€์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ํŠน์ง•์„ ์ฐพ์•„๋‚ด๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ๊ฐ„์˜ ๋Œ€์‘์ ์„ ์ฐพ๊ฑฐ๋‚˜, ์ด๋ฏธ์ง€ ๊ฐ„์˜ ๋ณ€ํ™”๋ฅผ ์ถ”์ ํ•˜๋Š” ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ Feature matching์˜ ๊ณผ์ •์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰œ๋‹ค. ๋จผ์ € ๊ฐ ์ด๋ฏธ์ง€์—์„œ ํŠน์ง•์„ ๊ฒ€์ถœํ•˜๊ณ , ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ ํŠน์ง•๋“ค์ด ์–ด๋–ป๊ฒŒ ๋งค์นญ๋˜๋Š”์ง€ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. 1. Feature Detection (ํŠน์ง• ๊ฒ€์ถœ) ์ด๋ฏธ์ง€์—์„œ ํŠน์ง•์„ ๊ฒ€์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋ฏธ์ง€ ๋‚ด์˜ ํŠน์ดํ•œ ํŒจํ„ด์ด๋‚˜ ๊ตฌ์กฐ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ด๋ฅผ ์œ„ํ•ด SIFT, SURF, ORB ๋“ฑ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ์ด๋ฏธ์ง€์—์„œ ํŠน์ง•์ ์„ ๊ฒ€.. 2023. 4. 3.
[OpenCV] Template Matching ํ…œํ”Œ๋ฆฟ ๋งค์นญ | ์ด๋ฏธ์ง€์—์„œ ์œ ์‚ฌํ•œ ๋ถ€๋ถ„ ์ฐพ์•„๋‚ด๊ธฐ Template Matching ์ด๋ฏธ์ง€ ํ…œํ”Œ๋ฆฟ ๋งค์นญ์€ ๋Œ€์ƒ ์ด๋ฏธ์ง€์—์„œ ์ž‘์€ ์ด๋ฏธ์ง€(ํ…œํ”Œ๋ฆฟ)๋ฅผ ์ฐพ๋Š” ๊ธฐ์ˆ ๋กœ, ์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜์ด๋‹ค. OpenCV์—์„œ๋Š” cv2.matchTemplate() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€ ํ…œํ”Œ๋ฆฟ ๋งค์นญ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ ์ด๋ฏธ์ง€์™€ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„์„œ, ์ž…๋ ฅ ์ด๋ฏธ์ง€์—์„œ ํ…œํ”Œ๋ฆฟ๊ณผ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ๋ถ€๋ถ„์„ ์ฐพ์•„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋”ฅ๋Ÿฌ๋‹์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ฒ˜๋Ÿผ ๊ฐ์ฒด์˜ deformation์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์ž˜ ๋งค์นญ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋‹ˆ์ง€๋งŒ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€์™€ ์•„์ฃผ ์œ ์‚ฌํ•œ ๋ถ€๋ถ„์ด ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ opencv์˜ ํ…œํ”Œ๋ฆฟ ๋งค์นญ์€ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€๋กœ ๋Œ€์ƒ ์ด๋ฏธ์ง€๋ฅผ ์Šฌ๋ผ์ด๋”ฉ ํ•˜๋Š”๋ฐ, ์ด๋•Œ ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ ์‚ฌ์ด์ฆˆ๋ฅผ .. 2023. 3. 31.
[OpenCV] Image Contour ์ถ”์ถœ | ์ด๋ฏธ์ง€ ์ปจํˆฌ์–ด | ๊ฐ์ฒด ์œค๊ณฝ์„  ์ถ”์ถœ | ๊ธฐ์ดˆ์ ์ธ segmentation ๋ฐฉ๋ฒ• Image Contour (์ด๋ฏธ์ง€ ์œค๊ณฝ์„ ) ์ด๋ฏธ์ง€ ์œค๊ณฝ์„ (contour)์€ ์ด๋ฏธ์ง€์—์„œ ๊ฐ์ฒด(object)์˜ ์™ธ๊ณฝ ๊ฒฝ๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ณก์„ ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์œค๊ณฝ์„ ์€ ๊ฐ์ฒด์˜ ํ˜•ํƒœ, ํฌ๊ธฐ, ๋ฐฉํ–ฅ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋ฏธ์ง€์—์„œ ๊ฐ์ฒด์˜ ์œ„์น˜๋‚˜ ํฌ๊ธฐ๋ฅผ ๊ฒ€์ถœํ•˜๊ณ , ๊ฐœ์ฒด์˜ ์™ธ๊ณฝ์„ ์ถ”์ถœํ•˜๊ฑฐ๋‚˜, ๊ฐœ์ฒด๋ฅผ ๋ถ„ํ• (segmentation)ํ•˜๊ธฐ ์œ„ํ•ด ์œค๊ณฝ์„ ์„ ์ถ”์ถœํ•œ๋‹ค. ์œค๊ณฝ์„ ์„ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋Œ€๊ฐœ ์ด๋ฏธ์ง€์˜ ์ด์ง„ํ™”(binary) ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์ด์ง„ํ™”๋œ ์ด๋ฏธ์ง€์—์„œ๋Š” ํฐ์ƒ‰ ํ”ฝ์…€์€ ๊ฐœ์ฒด๋ฅผ, ๊ฒ€์€์ƒ‰ ํ”ฝ์…€์€ ๋ฐฐ๊ฒฝ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด์ง„ํ™”๋œ ์ด๋ฏธ์ง€์—์„œ ์œค๊ณฝ์„ ์„ ์ถ”์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ cv2.findContours ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฏธ์ง€์—์„œ ์œค๊ณฝ์„ ์„ .. 2023. 3. 30.
[OpenCV] Morphological Operations ๋ชจํด๋กœ์ง€ ์—ฐ์‚ฐ | ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ์ฑ„์šฐ๊ธฐ | ๊ฐ์ฒด์˜ ๊ฒฝ๊ณ„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ | ๊ฐ์ฒด์˜ ํฌ๊ธฐ ์ค„์ด๊ธฐ | ๊ฐ์ฒด ์—ฐ๊ฒฐํ•˜๊ธฐ | ๊ฒฝ๊ณ„ ๊ฐ•์กฐํ•˜๊ธฐ Morphological Operations (๋ชจํด๋กœ์ง€ ์—ฐ์‚ฐ) ๋ชจํด๋กœ์ง€ ์—ฐ์‚ฐ์€ ์ด๋ฏธ์ง€ ๋‚ด ๊ฐ์ฒด์˜ ํ˜•ํƒœ, ํฌ๊ธฐ, ๊ตฌ์กฐ ๋“ฑ์„ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ˜•ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ฃผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ ์ด๋ฏธ์ง€(ํ‘๋ฐฑ ์ด๋ฏธ์ง€)์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋‚ด์˜ ๊ตฌ๋ฉ์„ ์ฑ„์šฐ๊ฑฐ๋‚˜, ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ ˆํ•˜๊ฑฐ๋‚˜, ๊ฐ์ฒด ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจํด๋กœ์ง€ ์—ฐ์‚ฐ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์กฐ ์š”์†Œ(structuring element)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋˜๋Š”๋ฐ ๊ตฌ์กฐ ์š”์†Œ๋Š” ์ด๋ฏธ์ง€ ๋‚ด์—์„œ ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์ด ๋œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ตฌ์กฐ ์š”์†Œ๋Š” ์‚ฌ๊ฐํ˜•, ์›, ์‹ญ์ž๊ฐ€ ๋“ฑ์˜ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋ฉฐ, ๋ชจ์–‘๊ณผ ํฌ๊ธฐ๋Š” ์ž‘์—…์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์„ ํƒ๋œ๋‹ค. ๋ชจํด๋กœ์ง€ ์—ฐ์‚ฐ์—๋Š” ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜๊ฐ€ ์žˆ์ง€๋งŒ, ๋Œ€ํ‘œ์ ์œผ๋กœ ํŒฝ์ฐฝ(dilation), ์นจ์‹.. 2023. 3. 29.
728x90