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.0251 sec