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

๐Ÿ’ป Programming83

[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.
[OpenCV] Perspective Transformation (์›๊ทผ ๋ณ€ํ™˜) | ์™œ๊ณก๋œ ์˜์ƒ์„ ํŽด์ฃผ๋Š” ๋ฐฉ๋ฒ• Geometric Transformation ์˜์ƒ์€ ๊ธฐํ•˜ํ•™์  ๋ณ€ํ™˜์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜๋  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ž์œ ๋„์— ๋”ฐ๋ผ translation, eclidean,similarity, affine, perspective(projective) ๋ณ€ํ™˜์œผ๋กœ ๋‚˜๋‰œ๋‹ค. ์ด ์ค‘์—์„œ perspective transformation์˜ ์ž์œ ๋„๊ฐ€ ๊ฐ€์žฅ ํฌ๋‹ค. ๋‹ค์‹œ ๋งํ•ด ๊ฐ€์žฅ ๋งŽ์€ ๋ณ€ํ˜•์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ๋ณ€ํ™˜์ด๋ผ๋Š” ๋œป์ด๋‹ค. ๋‹ค์–‘ํ•œ ์ปดํ“จํ„ฐ ๋น„์ „ ํ”„๋กœ์ ํŠธ์—์„œ ์นด๋ฉ”๋ผ์˜ ๊ฐ๋„์— ๋”ฐ๋ผ ์™œ๊ณก๋˜๋Š” ๊ฐ์ฒด๋‚˜ ํ…์ŠคํŠธ ๋“ค์„ ์ •๋ฉด์œผ๋กœ ๋ฐ”๋ผ๋ณด๋Š” view๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด affine ๋˜๋Š” perspective transformation์ด ์‚ฌ์šฉ๋œ๋‹ค. Perspective Transformation ๊ทธ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์ž์œ ๋„๋ฅผ ๊ฐ€์ง€๋Š” perspective tr.. 2023. 3. 29.
[pytorch]Box operator๋กœ Bounding Box ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ธฐ torchvision.ops torchvision.ops ์—์„œ๋Š” computer vision ๊ด€๋ จ ๊ฐ์ข… operator ๋“ค์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๊ทธ์ค‘์—์„œ Bounding Box๋ฅผ ๋‹ค๋ฃจ๋Š” Box Operators๋ฅผ ์†Œ๊ฐœํ•œ๋‹ค. Detection ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ๋งŒ์ง€๋‹ค๋ณด๋ฉด bounding box๋ฅผ ๋‹ค๋ฃฐ ์ผ์ด ๋งŽ์€๋ฐ, torchvision.ops ์—์„œ๋Š” bactch ๋‹จ์œ„๋กœ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•œ ๊ฐ์ข… ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•œ๋‹ค. * box ๋ฉด์ , box๊ฐ„์˜ iou, box format ๋ณ€๊ฒฝ, clip ๋“ฑ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ ํ…Œ์ŠคํŠธ box 3๊ฐœ๋ฅผ ์ •์˜ํ•˜๊ณ  ์•ž์„œ ์‚ดํŽด๋ณธ box operator ๊ธฐ๋Šฅ๋“ค์„ ํ…Œ์ŠคํŠธ import numpy as np import cv2 import torch from torchvision.ops import * # boxes .. 2023. 3. 17.
[pytorch] Dataloader์˜ 'collate_fn'์„ ์‚ฌ์šฉํ•œ ์ด๋ฏธ์ง€ ํŒจ๋”ฉ. ๊ฐ€๋ณ€ ์‚ฌ์ด์ฆˆ์˜ ์ด๋ฏธ์ง€๋ฅผ batch๋กœ ๋ฌถ์–ด Dataloader์— ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•. Pytorch์˜ Dataloader๋Š” ์ธ๋ฑ์Šค์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๋Š” dataset, ๊ฐ€์ ธ์˜ฌ ๋ฐ์ดํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ ์ปจํŠธ๋กคํ•˜๋Š” sampler์™€ batch๋กœ ๋ฌถ์ธ ๋ฐ์ดํ„ฐ๋ฅผ batch๋กœ ๋ฌถ์„ ๋•Œ ํ•„์š”ํ•œ ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋Š” collate_fn ๋“ฑ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ•™์Šต ๋˜๋Š” ์ธํผ๋Ÿฐ์Šค ํ•˜๋‹ค๋ณด๋ฉด ๊ฐ€๋ณ€ ์‚ฌ์ด์ฆˆ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ์— ์ฃผ์ž…ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋Š”๋ฐ, ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ ํŠน์ • ์‚ฌ์ด์ฆˆ(e.g. 224x224)๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ฆฌ์‚ฌ์ด์ฆˆํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ํผ๋ธ”๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ณ„ ์ƒ๊ฐ์—†์ด transforms.Resize() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด„๋œ ์‚ฌ์ด์ฆˆ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์ด๋‹ค. ํ•˜์ง€๋งŒ, ์‹ค์ œ ํ™˜๊ฒฝ์—์„œ ์ผ๊ด„๋œ ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง•์„ ์‚ฌ์šฉํ•˜๋Š”.. 2023. 3. 3.
[HuggingFace] Swin Transformer ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๋ชจ๋ธ ํ•™์Šต ํŠœํ† ๋ฆฌ์–ผ ์ตœ๊ทผ์— ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ผ์ด ์ƒ๊ฒจ ๋”ฅ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ์ธ HuggingFace ๋ฅผ ์‚ฌ์šฉํ•ด๋ดค๋‹ค. HuggingFace์˜ transformers๋Š” ๋‹ค์–‘ํ•œ ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ์„ ์ œ๊ณตํ•˜๊ณ  ์ž์ฒด ํ•™์Šต/ํ‰๊ฐ€ API๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋˜ํ•œ ํ—ˆ๊น…ํŽ˜์ด์Šค ๋ชจ๋ธ์€ Pytorch, Tensorflow ํ•™์Šต/ํ‰๊ฐ€ ์ฝ”๋“œ์—๋„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ์„๋งŒํผ ํ˜ธํ™˜์„ฑ์ด ์ข‹๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ pytorch ํ•™์Šต ์ฝ”๋“œ์— ๋ชจ๋ธ๋งŒ ํ—ˆ๊น…ํŽ˜์ด์Šค์˜ ํŠธ๋žœ์Šคํฌ๋จธ๋กœ ๋ฐ”๊ฟ”์„œ ํ•™์Šต์‹œํ‚ค๋ฉด ๋˜๋‹ˆ๊นŒ ๊ฐ„๋‹จํ•˜๊ฒ ๊ตฌ๋‚˜ ์ƒ๊ฐํ–ˆ์ง€๋งŒ... ์ƒ๊ฐ๋ณด๋‹ค ๊ณ ๋ คํ•ด์•ผํ•  ์ ๋“ค์ด ์žˆ์–ด์„œ ํŠœํ† ๋ฆฌ์–ผ๋กœ ์ •๋ฆฌํ•ด ๋ณธ๋‹ค. HuggingFace Vision Model ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„ Vision Transformer(ViT) ๊ธฐ๋ฐ˜์˜ ์ด๋ฏธ์ง€ ํŠธ๋žœ์Šคํฌ๋จธ ๋ชจ๋ธ๋“ค์€ ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ์œ„์™€ ๊ฐ™์ด ํŒจ์น˜๋กœ .. 2023. 1. 11.
728x90