E D R , A S I H C RSS

ISBN_Barcode_Image_Recognition

1. ”„๋กœ Šธ

1.1. ฐธ—ฌ

  •  •„๊ฒฝ

1.2. ๋ชฉ‘œ

  • Image๋กœ ๋ถ€„ฐ ISBN Šคบ”๋ผธ ถ”ถœ, •ด„
  • ๊ตฌ๊ธ€ •ˆ๋“œ๋กœด๋“œ—„œ ๋™ž‘

2. 1D Barcode Image Recognition

2.1. Symbology

  • 1ฐจ› ๋ฐ”ฝ”๋“œ ธ‹„ •˜๊ธฐ œ„•ด„œ๋Š” •ด๋‹น ๋ฐ”ฝ”๋“œ˜ ‹ฌ๋ณผ๋กœง€๋ฅผ ด•ด•ด•ผ •œ๋‹ค.
  • ‹ฌ๋ณผ๋กœง€๋ž€, ๋ฐ”ฝ”๋“œ๋ฅผ ‘œ‹œ•˜๋Š” ๋ฐฉ๋ฒ•„  ••œ ๊ทœน™ด๋‹ค. ด ๊ทœน™ด กดžฌ•ด•ผ •ด๋‹น ๋ฐ”ฝ”๋“œ๋ฅผ ƒ„•˜๊ฐ๋‚˜ ฝ„ ˆ˜ žˆ๋‹ค.

2.1.1. Bar and Space

  • Bar๋Š” ๋ฐ”ฝ”๋“œ˜ ๊ฒ€€ ๋ถ€๋ถ„, Space๋Š” ฐ ๋ถ€๋ถ„ด๋ฉฐ, ๊ฐ๊ฐ Black, White๋ผ๊ณ  ‘œ˜„•˜๊ธฐ๋„ •œ๋‹ค.

2.1.2. X-dimension

  • ๊ฐ€žฅ ข€ Bar ˜น€ ๊ฐ€žฅ ข€ Space(˜ ญ ๊ธธด)๋ฅผ ˜๋ฏธ•œ๋‹ค.

2.1.3. Quite Zone

  • ๋ฐ”ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ‰ฝ๊ฒŒ ธ‹•˜๊ธฐ œ„•ด, ๋ฐ”ฝ”๋“œ ขŒšฐ๋กœ X-dimension˜ 10๋ฐฐ˜ Space๊ฐ€ กดžฌ•œ๋‹ค.
  • ‹ค œ ˜ƒ—„œ๋Š” ๋Œ€๊ฐœ กดžฌ•˜๋‚˜. บกณ•œ ™”๋ฉด ƒ— —†„ ˆ˜๋„ žˆ๊ณ , ƒ˜”Œ๋ง ๊ณผ •—„œ žกŒด ๋ผ๊ธฐ ๋•Œ๋ฌธ— ๋ฐ”ฝ”๋“œ๋ฅผ ธ‹•˜๊ธฐ œ„•ด ด ˜—ญ„ ธ‹•˜๋Š” ๊ฒƒ„ ถ”ฒœ•˜ง€๋Š” •Š๋Š”๋‹ค.

2.1.4. Check Digit

  • ๋ฐ”ฝ”๋“œ๋ฅผ ž˜๋ชป ธ‹•˜๋Š” ๊ฒฝšฐ๋ฅผ ๋ฐฉง€•˜๊ธฐ œ„•ด. ‹ค œ ๋ฐด„ฐ๋กœ๋ถ€„ƒ„๋˜๋Š” ๋ฐด„ฐ๊ฐ€ žˆ„ ˆ˜ žˆ๋‹ค.

2.2. EAN-13 Symbology

  • EAN-13€ 13ž๋ฆฌ ˆž(Check Digit ฌ•จ)๋กœ ƒ„•˜๊ฐ๋‚˜ •ด„•  ˆ˜ žˆ๋Š” ๋ฐ”ฝ”๋“œด๋‹ค.
  • EAN-13˜ ‹ฌ๋ณผ๋กœง€— ๋Œ€•ด ž˜ „ค๋ช…๋˜–ด žˆ๋Š” Ž˜ดง€(˜๋ฌธ) : http://www.barcodeisland.com/ean13.phtml

2.2.1. ๋ฐ”ฝ”๋“œ ๊ตฌ„

  • 1€ bar, 0€ space๋กœ ๋‚˜ƒ€๋ƒ„. X๋Š” ๋‘˜ ค‘ •˜๋‚˜
  • Left(Start) Guard
    • 101
  • Left Characters
    • 0XXXXX1 * 6 (space๋กœ ‹œž‘•ด„œ bar๋กœ ๋๋‚จ)
  • Center Guard
    • 01010
  • Right Characters
    • 1XXXXX0 * 6 (bar๋กœ ‹œž‘•ด„œ space๋กœ ๋๋‚จ)
  • Right(End) Guard
    • 101
  • Start, End Guard๋Š” ๋ฐ”ฝ”๋“œ˜ ‹œž‘๊ณผ ๋„ •Œ๋ฆฌ๋Š” ‹ฌ๋ณผด๋‹ค.
  • Center Guard๋Š” Left Characters™€ Right Characters๋ฅผ ๊ตฌ๋ถ„•˜๋Š” ‹ฌ๋ณผด๋‹ค.
  • Left Characters™€ Right Characters๋Š” ๊ฐ๊ฐ 6ž๋ฆฌ ˆž๋ฅผ ๋‚˜ƒ€๋‚ธ๋‹ค.
  • ๋‚˜๋จธง€ •œ ž๋ฆฌ๋Š” Left Characters˜ Encodingœผ๋กœ ๋ถ€„•ด„•œ๋‹ค. (•„๋ž˜ Encoding—„œ „ค๋ช…)
  • Right Characters˜ ๋งˆง€๋ง‰ •œ ž๋ฆฌ๋Š” Check Digit ด๋‹ค.

2.2.2. X-dimension

  • ๊ฐ€žฅ ๋‘๊บผšด Bar ˜น€ Space˜ ญ ๊ธธด๋Š” X-dimension˜ 4๋ฐฐด๋‹ค.

2.2.3. Check Digit

  • EAN-13˜ Check Digit๋Š” ๋งˆง€๋ง‰ •œ ž๋ฆฌด๋ฉฐ, ๋‚˜๋จธง€ 12ž๋ฆฌ๋กœ ๋ถ€„ƒ„๋œ๋‹ค.
  • ๊ฐ 12ž๋ฆฌ ˆž— ๊ฐ€ค‘น˜๋ฅผ ๊ณ•˜—ฌ ๋‹ค •ฉ•˜๊ณ , •ฉ•œ ๊ฐ’„ 10œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธง€๋ฅผ 10—„œ ๋นผ๋ฉด Check Digit๊ฐ€ ๋‚˜˜จ๋‹ค.
    • ๊ฐ€ค‘น˜๋Š” 1, 3, ด ๋ฐ˜๋ณต๋˜๋Š” Œจ„ด๋‹ค. ฒซ ๋ฒˆงธ ž๋ฆฌ ˆž— 1„ ๊ณ•˜๊ณ , ... , —ด๋‘ ๋ฒˆงธ ž๋ฆฌ ˆž— 3„ ๊ณ•œ๋‹ค.


# Python
def generate_isbn_check_digit(numbers):	# Suppose that 'numbers' is 12-digit numeric string
    sum = 0;
    for i, number in enumerate(numbers):
        if i%2 == 0:
            sum += int(number) * 1
        else:
            sum += int(number) * 3
    return 10 - sum % 10

2.2.4. Encoding

2.2.4.1. Character

  • 0€ space, 1€ bar๋ฅผ ˜๋ฏธ•œ๋‹ค.
CharacterLeft(Odd)Left(Even)Right
0000110101001111110010
1001100101100111100110
2001001100110111101100
3011110101000011000010
4010001100111011011100
5011000101110011001110
6010111100001011010000
7011101100100011000100
8011011100010011001000
9000101100101111110100

  • Encoding„ ‰ฝ๊ฒŒ •ด๋…•˜๊ธฐ œ„•ด œ„˜ ‘œ๋ฅผ †ต•ด „ˆ„ ŒŒ•…•ด๋‘๋Š” ๊ฒƒด ข‹๋‹ค.
  • Left(Odd), Right๋Š” ๊ฐ๊ฐ˜ ๋น„Šธ๋ฅผ ๋ฐ˜ „•˜—ฌ „œ๋กœ ๊ฐ™๊ฒŒ ๋งŒ๋“ค ˆ˜ žˆ๋‹ค.
  • Left(Even), Right๋Š” ๋น„Šธ—ด„ ขŒšฐ ๋ฐ˜ „•˜—ฌ „œ๋กœ ๊ฐ™๊ฒŒ ๋งŒ๋“ค ˆ˜ žˆ๋‹ค.
  • 0 ˜น€ 1ด ๊ฐ€žฅ ๊ธธ๊ฒŒ —ฐ†๋˜–ด๋ด•ผ 4๊ฐœด๋‹ค.
  • Left˜ ๊ฐ€žฅ ™ผชฝ ๋น„Šธ๋Š” 0, ๊ฐ€žฅ ˜ค๋ฅธชฝ ๋น„Šธ๋Š” 1ด๊ณ , Right๋Š” ๊ทธ ๋ฐ˜๋Œ€ด๋‹ค.
    • ๊ฐ€šด๋ฐ— žˆ๋Š” ๋น„Šธ 5๊ฐœ(32 ๊ฐ€ง€ˆ˜)๋กœ ˆž๋ฅผ ๊ตฌ๋ถ„•˜๋ฉฐ, Left(Odd), Left(Even) ค‘— ๊ฒนน˜๋Š” ๊ฒƒด —†๋‹ค.
  • ๋ชจ๋“  ธฝ”๋”ฉ— ๋Œ€•ด 0, 1„ ˜—ญœผ๋กœ ๊ตฌ๋ถ„•˜๋ฉด ๊ทธ ˜—ญ€ •ญƒ 4๊ฐœด๋‹ค.
    • ฆ‰, •˜๋‚˜˜ ˆž๋ฅผ ๋‚˜ƒ€๋‚ด๊ธฐ œ„•ด 2๊ฐœ˜ Bar™€ 2๊ฐœ˜ Space๊ฐ€ กดžฌ•œ๋‹ค.

2.2.4.2. First Number

  • ŠคŽ˜ดŠค™€ ๋ฐ”— ˜•ด ง ‘ œผ๋กœ ‘œ˜„๋˜๋Š” ˆž๋Š” 12๊ฐœด๋‹ค. ๋‚˜๋จธง€ •˜๋‚˜˜ ˆž๋Š” Left Character˜ ธฝ”๋”ฉ„ •ด„•ด –ป–ด๋‚ด•ผ •œ๋‹ค. ˜ˆ๋ฅผ ๋“ค–ด 8801067070256 ด๋ผ๋Š” EAN-13 ๋ฐ”ฝ”๋“œ๊ฐ€ žˆ„ ๋•Œ, ๋ฐ”ฝ”๋“œ— ง ‘ œผ๋กœ –ป–ดง€๋Š”๊ด ๋งจ •ž˜ ž๋ฆฌ '8'ด ๋น „ 801067070256 ด๊ณ , ด๋Š” Left Character— •ด๋‹น•˜๋Š” 801067˜ ธฝ”๋”ฉ„ ๋ณด๊ณ  •Œ•„๋‚ด•ผ •œ๋‹ค.

3. Image Processing (with Google Android)

3.1. YUV Image Format

  • Y(œ˜๋„ ‹ ˜ธ, ™”๋ฉด˜ ๋ฐ๊ธฐ), U(Cb, œ˜๋„ ‹ ˜ธ™€ ฒญƒ‰ „๋ถ„˜ ฐจ), V(Cr, œ˜๋„ ‹ ˜ธ™€  ƒ‰ „๋ถ„˜ ฐจ)

3.1.1. Planar and Packed

  • Packed๋Š” Y, U, V˜ ๋ฐด„˜—ญด ๋ถ„๋ฆฌ๋˜ง€ •Š€ ฌ๋งทด๋‹ค.
  • Planar๋Š” Y, U, V˜ ๋ฐด„˜—ญด ๋ถ„๋ฆฌ๋œ ฌ๋งทด๋‹ค.

3.1.2. NV21 (Planar)

  • •ˆ๋“œ๋กœด๋“œ ๊ณต‹ ๋ฌธ„œ— ๋”ฐ๋ฅด๋ฉด •ญƒ ง€›๋˜๋Š” ฌ๋งทด๋ผ๊ณ  •œ๋‹ค.
  • Planar Formatœผ๋กœ, ”„๋ ˆž„ ฌ๊ธฐ๋งŒผ Y  •๋ณด๊ฐ€ žˆ๊ณ , ๊ทธ ๋’ค— ”„๋ ˆž„ ฌ๊ธฐ˜ ๋ฐ˜ ๋งŒผ U, V  •๋ณด๊ฐ€ กดžฌ•œ๋‹ค.

3.1.3. YV12

  • ๊ณต‹ ๋ฌธ„œ— ๋”ฐ๋ฅด๋ฉด API level 12(—ˆ๋‹ˆปด 3.1.x)๋ถ€„•ญƒ ง€›๋˜๋Š” ฌ๋งทด๋ผ๊ณ  •œ๋‹ค.

3.2. Threshold

  • ˜ƒ„ ๋‘ ๊ฐ€ง€ ƒ‰œผ๋กœ๋งŒ ‘œ˜„•˜—ฌ, Object ธ‹„ šฉด•˜๊ฒŒ •˜๊ธฐ œ„•จ
  • ˜ˆ๋ฅผ ๋“ค–ด ‘๋ฐ ˜ƒ— ๋Œ€•ด ˆ˜–‰•  ๋•Œ ž„๊ณ„๊ฐ’(–ด๋–ค ๋ฐ๊ธฐ๊ฐ’)๋ณด๋‹ค ๋‚ฎœผ๋ฉด ๊ฒ€ •ƒ‰, ๋†’œผ๋ฉด ฐƒ‰œผ๋กœ ๋ณ€™˜•˜๋Š” ๊ฒƒ.

3.2.1. Global Threshold

  •  „ฒด ˜ƒ— ๋Œ€•ด •˜๋‚˜˜ ž„๊ณ„๊ฐ’œผ๋กœ ˜ƒ„ ด„™”•˜๋Š” ๊ฒƒ.

3.2.2. Adaptive Threshold

  • ˜ƒ ผ๋ถ€— ๋น›ด ๋น„ถฐง€๊ฐ๋‚˜, ๊ทธ๋ฆผž๊ฐ€ ๋“œ๋ฆฌšธ ๊ฒฝšฐ Global Threshold๋ฅผ ˆ˜–‰•˜๋ฉด ๊ธฐ๋Œ€•œ ๊ฒฐ๊ณผ๋ฅผ –ป๊ธฐ ž˜๋“ค๋‹ค.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:26
Processing time 0.0248 sec