๐ง๐ปโ๐ป์ฉ์ด ์ ๋ฆฌ
Computer vision
Edge
Segmentation
huffman coding
run-length encoding
์ง๋ ์๊ฐ๊น์ง edge๋ฅผ ์ ๋๋ก, ๋๋๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ดค์ต๋๋ค.
๊ทธ ๋ฐฉ๋ฒ์๋ within-class variance OR between-class variance๊ฐ ์กด์ฌํ์ฃ .
Objectives
์๋ ์ธ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ๋ ์์ถ์ ์ํ Algorithm์ ๋๋ค.
- Huffman Coding
- Run-length Coding
- JPEG Compression
์์ถ์ด ํ์ํ ์ด์ ๋ ์์ ๋ฐ์ดํฐ๊ฐ ๋๋ฌด ์ปค์์ ๋๋ค.

์์ ๊ฐ์ด pixel ํ๋์ 8๋นํธ,
๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด width x height ๋งํผ ์กด์ฌํ๋ฉฐ, ์ด๊ฒ์ด 1์ด๋ผ๋ฉด 30 ํ๋ ์์ด๋ผ ํ๋ฉด 30๋ ๊ณฑํด์ค์ผํฉ๋๋ค.
์ฉ๋์ด ๋๋ฌด๋ ํฌ๊ฒ ๋์ฃ .
๊ทธ๋์ ์์ ์์ถ์ ์ํ ๊ธฐ์ ์ด ํ์ํด์ง ๊ฒ์ ๋๋ค.
์์์ ์ํ ์์ถ ๋ฐฉ์์ด๋ผ ์ด๊ฒ์ ๋์์์ผ๋ก ํ์ฅํ์ ๋ ๋ฐฉ์์ด ์ฝ๊ฐ ๋ฌ๋ผ์ง๋๋ค.
์ฐ๋ฆฌ๋ ์์ ์์ถ์ ์ด์ ์ ๋๊ณ ๋ฐฐ์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์์ถ์๋ ๋ ๊ฐ์ง ๋ฐฉ์์ด ์กด์ฌํฉ๋๋ค.
- Lossless compression ๋ฌด์์ค ์์ถ
- ๋ฐ์ดํฐ ๊ทธ๋๋ก
- Loss compression ์์ค ์์ถ
- ์์ถ๋ฅ ์ ๊ทน๋ํ ์ํค๊ณ ๋ฐ์ดํฐ ์์ค์ ๊ฐ์ํ๊ฒ ๋ค
Huffman Coding
์ด huffman coding์ concept๋, ์์ฃผ ๋ฐ์ํ๋ ์ ๋ณด์ ๋ ์ ์ bit๋ฅผ ๋ถ์ฌํ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
์ด๋ ํ ๋ฐ์ดํฐ๊ฐ ์ผ๋ง๋ ๋ฐ์ํ๋์ง ์ฐ๋ฆฌ๋ ์ ์๊ฐ ์์ฃ .
์์ฃผ ๋์ค๋ ๊ฒ์ ์ ์ bit ์๋ฅผ ๋ถ์ฌํ๋ค๋ ๊ฒ์ผ๋ก ๋ด ๋๋ค.
๊ทธ๋ผ, ์ฉ๋์ด๋ผ๋ ๊ฒ์ ๋น๋์ x ํด๋น ๋นํธ ์์ด์ฃ .
๊ทธ๋ ๊ฒ ํด์ ๋ชจ๋ ์ซ์์ ๋ํด์ 8๋นํธ์ฉ ๋ถ์ฌํ๋ ๊ฒ๋ณด๋ค ์์ถ๋ฅ ์ ์ฌ๋ฆด ์ ์์ต๋๋ค.

์์ ๊ฐ์ด pixel ๊ฐ์ด 0 ~ 255๊ฐ ์๋ 0 ~ 3 ์ ๋์ธ ์์ฃผ ๊ฐ๋จํ ์์๋ฅผ ๋จผ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ฐ pixel ๊ฐ์ ํด๋นํ๋ ํ๋ฅ ์ด ์์ ๊ฐ์ด ์ฃผ์ด์ก๋ค๊ณ ํด๋ด ์๋ค.
์ case์์ ํ์ํ 4๊ฐ์ง ๊ฒฝ์ฐ์ ๋ํด์ bit๋ 2๊ฐ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ์ธก variable code์ ๊ฐ์ด,
๋ ์์ฃผ ๋์ค๋ ๊ฒ์ ๋ ์ ์ bit ์๋ฅผ ๋ถ์ฌํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๊ฐ๊ฐ์ ๋ํด์ ํ์๋กํ๋ ํ๊ท bit ์๋ฅผ ๊ณ์ฐํด๋ณผ ์ ์์ต๋๋ค.

์ ๊ณ์ฐ ๊ณผ์ ์ ํตํด fixed code๋ก ํ๋ ๊ฒ๋ณด๋ค ๋น๋์ ๋ํด์ ๊ณ์ฐํ๋ variable code๋ก ์ฐ๋ฆฌ๋ 0.1์ด๋ผ๋ bit ์๋ฅผ ์ค์ผ ์ ์์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ , ์์ถ์ ๋ํด์ ์ด์ผ๊ธฐํ ๋ Entropy H๋ผ๋ ๊ฒ์ด ์์ต๋๋ค.
ํ๋ฅ ์ด ์ฃผ์ด์ก์ ๋, ํด๋น ๋ฐ์ดํฐ๋ฅผ encodingํ๊ธฐ ์ํด์ ํ์๋ก ํ๋ ์ด๋ก ์ ์ธ ์ต์๊ฐ์ ๋๋ค.

๊ทธ๋์ ์ ์์์ ์ํด์, ๊ฐ pixel์ ๋ํด์ ํ๋ฅ ์ด ์ฃผ์ด์ง๋ฉด ์์ ๊ฐ์ด ํ๋ฅ ๊ฐ์ ๊ณ์ฐํด์ ๋์ ํด์ค ์ ์์ต๋๋ค.

๊ทธ๋์ ์ด๋ฌํ ์ด๋ก ์ ์ธ ์ต์๊ฐ์ด ๋์ค๊ฒ ๋ฉ๋๋ค.
์ด ๊ฐ์ ๊ฐ๊น์์ง๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค๋ ๊ฒ์ ๋๋ค.
์ด์ Huffman Coding์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.

๊ฐ pixel ๊ฐ์ ๋ํด์,
(๋น๋์) / (์ ์ฒด ์) ๊ฐ ๊ณง ํ๋ฅ ์ด๋, ๋น๋๊ฐ ๋์์๋ค๊ณ ๋ด๋ ๋ฌด๋ฐฉํฉ๋๋ค.
1. ๊ทธ๋ ๊ฒ ํ๋ฅ ์ ์ญ ๋์ดํฉ๋๋ค.
2. ๊ฐ์ฅ ์์ ํ๋ฅ ๋ ๊ฐ๋ฅผ ๋ํฉ๋๋ค.
3. ๊ทธ ๋ค์ ๋จ์ ๊ฒ ์ค ๊ฐ์ฅ ์์ ํ๋ฅ ๋ ๊ฐ๋ฅผ ๊ณ์ ๋ํด๋๊ฐ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ Binary Tree์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ถ๋ฉ๋๋ค.
์ด๊ฒ์ด Huffman Tree๋ฅผ ๋ง๋๋ ๊ณผ์ ์ ๋๋ค.
๊ฐ ํธ๋ฆฌ์์ ์์๋ 0, ๋ฐ์๋ 1์ ๋ถ์ฌํ์ต๋๋ค.
์ฌ๊ธฐ์ bit๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ์์ 1.0๋ถํฐ ์์ํ์ฌ ๊ฐ๊ฐ์ ์ง์ ์ผ๋ก ๋๋ฌํ ๋๊น์ง์ bit๋ฅผ ์ธก์ ํ๋ฉด ๋๋ ๊ฒ์ ๋๋ค.
๊ทธ๋์ ๊ฐ pixel์ ๋ํด์ ์ฝ๋ํ ์ํค๊ธฐ ์ํด์๋, encodingํ๊ธฐ ์ํด์๋ ์๋ก ๋์จ codeword๋ก ๋ฐ๊พธ๋ ๊ฒ์ ๋๋ค.
์๋์ ๊ฐ์ด 8๊ฐ์ง pixel์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ด ์๋ค.

์ฐ๋ฆฌ๊ฐ 8๊ฐ์ง pixel์ ์ํด์ 3 bit๊ฐ ํ์ํ์ฃ .
๊ทธ๋ฐ๋ฐ, ์์ ๊ฐ์ด Entropy ๊ณต์์ ๋์ ๋ง ํ์๋๋ ์์ ๊ฐ์ด 3๋ณด๋ค ์์ ์ซ์๊ฐ ๋์์ต๋๋ค.
๊ทธ๋์ ์์ ๊ฐ์ด fixed ๋ ๊ฐ๋ณด๋ค ์์ ์์ bit ์๋ฅผ ์ป์ด๋ผ ์ ์์ต๋๋ค.
ํธ๋ฆฌ๋ ์๊น ๊ตฌํ ๊ฒ๊ณผ ๊ฐ์ด ๋ง๋ค ์ ์์ต๋๋ค.

๊ทธ๋ฆฌ๊ณ 0๊ณผ 1์ ์จ๋๊ณ ๋๋ถํฐ ๋ฐ๋ผ์ ํ๋ฉด ์๋์ ๊ฐ์ด ๋์ต๋๋ค.

๊ทธ๋์ ์ด bit๋ฅผ ํตํด ํ๊ท bit ์๋ฅผ ๊ณ์ฐํด๋ณผ ์ ์์ต๋๋ค.

๊ณ์ฐํ๋ฉด 2.7์ด ๋์ต๋๋ค.
์์์ ๊ณ์ฐํ entropy ๊ฐ์ ๊ทผ์ ํด ๊ฐ๋๋ค.
๊ทธ๋์ ์๋์ ๊ฐ์ด 3 4 0 0 1 2 5 ๋ผ๋ ์ซ์๊ฐ ๋ค์ด์ค๋ฉด ์๋์ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์ค์ ํ Huffman code๋ก ๋ฐ๊ฟ์ฃผ๋ฉด ๋ฉ๋๋ค.

์ด๋ ๊ฒ encoding์ด ๋์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ํ ์ด๋ธ์ ์๋ ์ซ์๊ฐ ์์ผ๋ฉด Huffman code์์ ๋ค์ pixel ๊ฐ์ผ๋ก ๋์์ค๋ Decoding์ด ๊ฐ๋ฅํด์ง๋๋ค.
Run-length Encoding
Method 1
encoding ์ ๋์จ pixel์ ๊ฐ ํ์๋ฅผ ์ ๋ ๋ฐฉ์์ ๋๋ค.
000000์ด ๋์จ๋ค๋ฉด 0์ด 06๋ฒ ๋์๋ค๊ณ ๋ณผ ์ ์๊ฒ ์ฃ .
๊ทธ๋ฐ๋ฐ ์ฐ๋ฆฌ ์ค์ํ์์ ์ด๋ ๊ฒ ๊ฐ์ ์ซ์์ ๋์ด์ด ์ ๋์ค์ง๋ ์์ต๋๋ค.
ํํธ,
๊ทธ๋ฐ๋ฐ edge์ ๊ฐ์ binary image์ ๊ฒฝ์ฐ์๋ ๋์ฌ ์๊ฐ ์์ต๋๋ค.
์๋๋ฉด ์ด์ Huffman Coding์ ์ง๋๋ฉด Binary Encoding์ ํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฌํ ํํ ๋ํ 0์ด๋ 1์ด ๋ฐ๋ณต์ด ๋ง์ด ๋๋ ๊ฒฝ์ฐ๊ฐ ์๊ฒ ์ฃ .
๊ทธ๋ฌํ ๊ฒ๋ค์ ํ ๋ฒ ๋ ์ ์ฅํ ๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด ์ด Run-length Encoding์ ๋๋ค.

์ matrix๋ฅผ ๋ณด์์ฃ .
์ด ๊ฒฝ์ฐ์๋ ์ฐ๋ฆฌ๊ฐ row ๋จ์๋ก ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ฒ์ ๋๋ค.
๋งจ ์ฒ์ row๋ฅผ ๋ณด๋ฉด,
๋จผ์ 0์ผ๋ก ์์ํ๋ค๊ณ ๊ฐ์ ํด๋ด ์๋ค.
๊ทธ๋ผ 0์ด 1๋ฒ ๋ฐ์, ๊ทธ๋ฆฌ๊ณ 1์ด 2๋ฒ ๋ฐ์, ๊ทธ๋ฆฌ๊ณ 0์ด 3๋ฒ ๋ฐ์ํ์ต๋๋ค.
์ด๊ฒ์ ๋ํ ์ ๋ณด๋ฅผ (123)์ผ๋ก encodingํ๋ค๋ฉด,
Decoding ์ 011000์ผ๋ก ๋ณต์ํ ์ ์๊ฒ ์ฃ .
๊ทธ๋ฆฌ๊ณ 3๋ฒ์งธ ์ค์์, ์ฐ๋ฆฌ๋ ์ด๊ฒ์ 0์ผ๋ก ์์ํ๋ค๊ณ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์,
1๋ก ์์ํ๋ ์์ ๋ํด์ 0์ด ํ๋๋ ์ ๋์์ผ๋ 0์ด 0๋ฒ ๋์ด์ ํ์ํด์ฃผ๊ณ ๊ทธ ๋ค์ counting์ ์ด์ด๊ฐ์ผ ํฉ๋๋ค.
์๋ฌด๋๋ 0,1์ด ๋ฐ๋ณต๋๋ฉด ๋ถ๋ด์ด ๋๊ณ , ํ๋๊ฐ ๊ณ์ํด์ ๋์ค๋ฉด ํจ๊ณผ๊ฐ ๋์ ๋ฐฉ๋ฒ์ ๋๋ค.
Method 2
๊ทธ๋ฆฌ๊ณ , 2๋ฒ์งธ case์ ๊ฒฝ์ฐ๋ row ๋จ์๋ก ํ๊ธด ํ๋๋ฐ ๋ฐฉ๋ฒ์ ์กฐ๊ธ ๋ค๋ฆ ๋๋ค.

์ด๋ฒ์๋ 1์ด๋ผ๋ ์ซ์ ๊ธฐ์ค์ผ๋ก ๋ช ๋ฒ ์งธ์ ๋ช ๋ฒ ๋ฐ๋ณตํ๋๋ฅผ ๋ณด๋ ๊ฒ์ ๋๋ค.
์ ์ฒซ row๋ 1์ด 2๋ฒ์งธ์์ 2๋ฒ ๋ฐ๋ณต ๋์์ต๋๋ค.
๊ทธ๊ฒ์ 22๋ก ๋ํ๋ ๋๋ค.
3๋ฒ์งธ row์ ๊ฒฝ์ฐ๋ 1์ด 1๋ฒ์งธ์์ 3๋ฒ ๋ฐ๋ณต ๊ทธ๋ฆฌ๊ณ 6๋ฒ์งธ์์ 1๋ฒ ๋ฐ๋ณต์ด๋ฏ๋ก, 1361๋ก ์ ์ต๋๋ค.
๊ฒฐ๊ตญ ๋ฐ๋ณต๋๋ ํ์๋ฅผ ๊ธฐ๋กํ ๊ฒ์ด run-length encoding์ ํต์ฌ ์์ด๋์ด์ ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ์ binary ์์์ ์ ์ฉํด๋ณผ ์ ์์ต๋๋ค.
๊ทธ๋ฅ ์์์ 256 ์ค์ ๋ฐ๋ณต๋๋ ํ์๊ฐ ์ ์ผ๋ฏ๋ก ์ด ๋ฐฉ๋ฒ์ ์คํ๋ ค ์ํด์ ๋๋ค.
'Artificial Intelligence > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Computer Vision] Objectives - JPEG Algorithm (2) (0) | 2023.05.16 |
---|---|
[Computer Vision] Objectives - JPEG Algorithm (0) | 2023.05.10 |
[Computer Vision] Segmentation (1) | 2023.05.07 |
[Computer Vision] Binary Image (2) | 2023.04.27 |
[Computer Vision] Canny edge detector (0) | 2023.04.23 |