ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы автоматичСского поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π˜Ρ‚Π°ΠΊ, послС нахоТдСния максимального гСссиана ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ сосСдних Ρ‚ΠΎΡ‡Π΅ΠΊ 3x3x3, ΠΌΡ‹ Π½Π°ΡˆΠ»ΠΈ пиксСль, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот максимум достигаСтся. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΎΠΊΡ‚Π°Π²Π° ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅ Π²ΡΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ изобраТСния, Ρ‚ΠΎ ΠΈΡΡ‚ΠΈΠ½Π½Ρ‹ΠΉ максимум ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ пиксСлСм, Π° Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ рядом, Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ… пиксСлях. Для нахоТдСния Ρ‚ΠΎΡ‡ΠΊΠΈ истинного максимума, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… гСссианов ΠΊΡƒΠ±Π°… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы автоматичСского поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования РСспублики Π‘Π΅Π»Π°Ρ€ΡƒΡΡŒ

«Π“ΠΎΠΌΠ΅Π»ΡŒΡΠΊΠΈΠΉ государствСнный унивСрситСт ΠΈΠΌΠ΅Π½ΠΈ Ѐранциска Π‘ΠΊΠΎΡ€ΠΈΠ½Ρ‹»

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° матСматичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ управлСния Дипломная Ρ€Π°Π±ΠΎΡ‚Π°

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмы Π°Π²Ρ‚оматичСского поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ

Π˜ΡΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒ: Н. Π‘. ΠœΡƒΠ·Ρ‹ΠΊΠ° Научный Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ: О. А. Π¨ΠΈΠΌΡ‡ΠΈΠΊ Π Π΅Ρ†Π΅Π½Π·Π΅Π½Ρ‚ ΠΊ.Ρ‚.Π½, Π΄ΠΎΡ†Π΅Π½Ρ‚ А. Π’. Π’ΠΎΡ€ΡƒΠ΅Π² Π“ΠΎΠΌΠ΅Π»ΡŒ 2013

1. НазначСниС Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ прилоТСния

2. БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния

2.1 Π―Π·Ρ‹ΠΊ программирования C++

2.2 Π―Π·Ρ‹ΠΊ программирования C#

2.3 Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Eclipse

3. ΠžΠ±Π·ΠΎΡ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² распознания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях

3.1 Алгоритм поиска максимума кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

3.1.1 ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска максимума дискрСтной кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

3.1.2 ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска максимума кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

3.2 ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ устойчивых ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² изобраТСния: ΠΌΠ΅Ρ‚ΠΎΠ΄ SURF

4. ИсслСдованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ

4.1 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° исслСдования

4.2 Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ исслСдования

4.2.1 Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π½Π° Π²Ρ…ΠΎΠ΄ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

4.2.2 Π Π°Π·Π½Ρ‹Π΅ ΡƒΠ³Π»Ρ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сцСны

4.2.3 Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ пСрСкрытия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

4.3 Анализ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

5. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ рСализация ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… источников ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’ Π½Π°ΡΡ‚оящСС врСмя с Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ растСт ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ систСм Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Ρ€ΠΎΠ±ΠΎΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈ Π½Π°ΡƒΠΊΠ΅, Ρ‚Π°ΠΊ ΠΈ Π² ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ. Как слСдствиС растСт ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π² Ρ‡Π°ΡΡ‚ности Π²ΠΈΠ΄Π΅ΠΎ Π΄Π°Π½Π½Ρ‹Ρ….

ЭффСктивная ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ ΠΊΡ€ΡƒΠ³ примСнСния Π΄Π°Π½Π½Ρ‹Ρ… систСм.

ΠŸΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ являСтся повсСмСстноС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€ΠΎΠ±ΠΎΡ‚ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, систСм распознания тСкстов, ΠΎΡ…Ρ€Π°Π½Π½Ρ‹Ρ… систСм основанных Π½Π° Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈ Ρ‚. Π΄. Π’ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ врСмя всС большСС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ удСляСтся систСмам, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ машинноС Π·Ρ€Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ основного источника ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Π§Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡŽ потрСбности Π² Π½ΠΎΠ²Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

НС ΡΠΌΠΎΡ‚Ρ€Ρ Π½Π° ΡΡ‚ΠΎ, Π·Π°Π΄Π°Ρ‡Π° распознавания ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ Π½Π΅ Ρ€Π΅ΡˆΠ΅Π½Π° Π² ΠΏΠΎΠ»Π½ΠΎΠΌ объСмС. Однако, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… сущСствСнных ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ приблизится ΠΊ Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ.

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅ (машинноС Π·Ρ€Π΅Π½ΠΈΠ΅) — ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-тСхничСских срСдств, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… считываниС Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π²ΠΈΠ΄Π΅ΠΎΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π²Ρ‹Π΄Π°Ρ‡Ρƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Ρ„ΠΎΡ€ΠΌΠ΅, ΠΏΡ€ΠΈΠ³ΠΎΠ΄Π½ΠΎΠΉ для Π΅Π³ΠΎ практичСского примСнСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ монокулярноС ΠΈ Π±ΠΈΠ½ΠΎΠΊΡƒΠ»ΡΡ€Π½ΠΎΠ΅ машинноС Π·Ρ€Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… соотвСтствСнно для построСния ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ плоских ΠΈ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ИсслСдованиС ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния являСтся Π½Π°ΡƒΡ‡Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΈ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹Ρ… с Π½ΠΈΠΌ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ считывания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. Начало Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, связанных с Π΄Π°Π½Π½Ρ‹ΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ, относится ΠΊ 1950;ΠΌ Π³ΠΎΠ΄Π°ΠΌ. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ успСх Π² ΡΡ‚ΠΎΠΉ области Π±Ρ‹Π» достигнут Π² ΠšΠΎΡ€Π½Π΅Π»Π»ΡΠΊΠΎΠΉ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ аэронавтики Π² 1958;1960 Π³ΠΎΠ΄Π°Ρ… Π² ΡΠ²ΡΠ·ΠΈ с Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π° Π­Π’Πœ IBM-740 Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° систСмы распознавания ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Π·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π·ΠΎΠ² — Mark I Perceptron (Π°Π²Ρ‚ΠΎΡ€ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — Ѐрэнк Π ΠΎΠ·Π΅Π½Π±Π»Π°Ρ‚Ρ‚).

На Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ достаточно ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ³ΠΎ зрСния, начиная ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΉ Π½Π° Ρ‚Π΅ΠΌΡƒ сравнСния ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ изобраТСния с ΡˆΠ°Π±Π»ΠΎΠ½Π½Ρ‹ΠΌ, Π΄ΠΎ ΠΏΠΎΡΡ‚роСния ΠΏΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΠΌ слоТных Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. Π’Π²ΠΈΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΌΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π΅ΠΌΡ‹ распознания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² я ΡΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€ΠΈΡ€ΡƒΡŽ своС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… распознания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях.

1. НазначСниС Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ прилоТСния

Когда ΠΌΡ‹ ΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰ΠΈΡ… нас Π»ΠΈΡ†Π° людСй, ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ, ΠΌΡ‹ Π½Π΅ ΠΎΡΠΎΠ·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊΠΎΠΉ объСм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Ρ‹Π²Π°Π΅Ρ‚ наш ΠΌΠΎΠ·Π³, Ρ‡Ρ‚ΠΎ Π±Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вСсь ΠΏΠΎΡ‚ΠΎΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Нам Π½Π΅ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ Ρ‚Ρ€ΡƒΠ΄Π° Π½Π°ΠΉΡ‚ΠΈ Π·Π½Π°ΠΊΠΎΠΌΠΎΠ³ΠΎ Π½Π°ΠΌ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π° Ρ„ΠΎΡ‚ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ, ΠΈΠ»ΠΈ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π·Π΄Π°Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ°ΠΌΡΡ‚Π½ΠΈΠΊΠ°. Казалось Π±Ρ‹, наши ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Π°ΡƒΠ΄ΠΈΠΎ Ρ„Π°ΠΉΠ»Ρ‹. Π§Ρ‚ΠΎ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΈΠΌ Ρ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Π½Π°ΠΉΡ‚ΠΈ Ρ„ΠΎΡ‚ΠΎ нашСго любимого Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΈΠ· Π»ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ‚ΠΎ Π³Π°Π»Π΅Ρ€Π΅ΠΈ? Π­Ρ‚ΠΎΠΌΡƒ прСпятствуСт ряд ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ²:

1.ΠœΠ°ΡΡˆΡ‚Π°Π±. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±. ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ Ρ€Π°Π·Π½ΡƒΡŽ ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… изобраТСниях.

2. ΠœΠ΅ΡΡ‚ΠΎ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ нас ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах изобраТСния.

3.Π€ΠΎΠ½ ΠΈ ΠΏΠΎΠΌΠ΅Ρ…ΠΈ. ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΊΠ°ΠΊ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅, Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½, ΠΈ Π½Π°Ρ…одится Π½Π° Ρ„ΠΎΠ½Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΠΎ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ всякого Ρ€ΠΎΠ΄Π° искаТСниям ΠΈ ΠΏΠΎΠΌΠ΅Ρ…Π°ΠΌ.

4.ΠŸΡ€ΠΎΠ΅ΠΊΡ†ΠΈΡ, Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ³ΠΎΠ» ΠΎΠ±Π·ΠΎΡ€Π°. Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ являСтся лишь Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠ΅ΠΉ нашСго Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡƒΠ³Π»Π° ΠΎΠ±Π·ΠΎΡ€Π° ΠΊΠ°Ρ€Π΄ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° Π΅Π³ΠΎ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΡŽ — ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π°Π²Π°Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ€Π°Π·Π½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΈΠ»ΠΈ расстояния Π΄ΠΎ Π½Π΅Π³ΠΎ.

ΠŸΡ€ΠΈ этом ΠΎΠ±Ρ€Π°Π·Π΅Ρ† Π½Π° ΡΡ†Π΅Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚:

a) ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π± Π±) Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚ Π² ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ изобраТСния Π²) Π±Ρ‹Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ мСстС сцСны Π³) ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΡˆΡƒΠΌΠ»Π΅Π½, Π²ΠΈΠ΄Π΅Π½ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, частично заслонСн Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ Π΄) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ ΠΎΡ‚ ΠΎΠ±Ρ€Π°Π·Ρ†Π° ΡΡ€ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΊΠΎΠ½Ρ‚раст Π΅) Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ совсСм

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 1. ΠžΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ рядом Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… свойств (Ρ„ΠΎΡ€ΠΌΠ°, Ρ†Π²Π΅Ρ‚) ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΅Π³ΠΎ Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ 2. Π‘Ρ†Π΅Π½ΠΎΠΉ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ трСбуСтся Π½Π°ΠΉΡ‚ΠΈ ΠΎΠ±Ρ€Π°Π·Π΅Ρ†.

Π—Π°Π΄Π°Ρ‡Π° 1. Π Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях.

Π—Π°Π΄Π°Ρ‡Π° 2. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ… с Ρ†Π΅Π»ΡŒΡŽ ΠΈΡ… Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π³ΠΎ изучСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°.

2. БрСдства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прилоТСния

2.1 Π―Π·Ρ‹ΠΊ программирования C++

НазваниС «Π‘++» Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ΠΎ Π ΠΈΠΊΠΎΠΌ ΠœΠ°ΡΡΠΈΡ‚Ρ‚ΠΈ (Rick Mascitti) ΠΈ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π±Ρ‹Π»ΠΎ использовано Π² Π΄Π΅ΠΊΠ°Π±Ρ€Π΅ 1983 Π³ΠΎΠ΄Π°. Π Π°Π½Π΅Π΅, Π½Π° ΡΡ‚Π°ΠΏΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎΠ²Ρ‹ΠΉ язык назывался «Π‘ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ».

Имя, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠ΅Π΅ΡΡ Π² ΠΈΡ‚ΠΎΠ³Π΅, происходит ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π‘ «++» (ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ) ΠΈ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Ρ‘Π½Π½ΠΎΠΌΡƒ способу присвоСния Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠΌΡ‘Π½ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅ΠΌΡΡ Π² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ символа «+» для обозначСния ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. Богласно Бтрауструпу, «ΡΡ‚ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Ρƒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π‘». Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ «Π‘+» назывался Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΉ, Π½Π΅ ΡΠ²ΡΠ·Π°Π½Π½Ρ‹ΠΉ с Π‘++, язык программирования.

НСкоторыС программисты Π½Π° Π‘ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ выраТСния x=3; y=x++; Ρ‚ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ получится x=4 ΠΈ y=3, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ x ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС присвоСния Π΅Π³ΠΎ y. Однако Ссли Π²Ρ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ y=++x; Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ся x=4 ΠΈ y=4.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΡΡ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π½Π°Π·Π²Π°Ρ‚ΡŒ язык Π½Π΅ Π‘++, Π° ++Π‘. Однако ΠΎΠ±Π° выраТСния c++ ΠΈ ++c ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ c, Π° ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ c++ Π±ΠΎΠ»Π΅Π΅ распространСно.

ΠŸΠ΅Π΄Π°Π½Ρ‚Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ языка Π‘++ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ‚ самого C, поэтому самым Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π±Ρ‹Π»ΠΎ Π±Ρ‹ «Π‘+1».

НовыС возмоТности ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π‘ ΠΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΡΠΌΠΈ Π‘++ Π² ΡΡ€Π°Π²Π½Π΅Π½ΠΈΠΈ с Π‘ ΡΠ²Π»ΡΡŽΡ‚ся:

— ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования;

— ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ программирования Ρ‡Π΅Ρ€Π΅Π· ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹;

— Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…;

— ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ;

— ΠΏΡ€ΠΎΡΡ‚ранства ΠΈΠΌΡ‘Π½;

— Π²ΡΡ‚Ρ€Π°ΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

— ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ²;

— ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈΠΌΡ‘Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;

— ΡΡΡ‹Π»ΠΊΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ управлСния свободно распрСдСляСмой ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ;

— Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

Π―Π·Ρ‹ΠΊ Π‘++ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ являСтся надмноТСством Π‘. НовыС возмоТности Π‘++ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ объявлСния Π² Π²ΠΈΠ΄Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π² Π²ΠΈΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ new ΠΈ delete, Ρ‚ΠΈΠΏ bool, ссылки, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ понятиС константности, подставляСмыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, пСрСопрСдСлСния, пространства ΠΈΠΌΡ‘Π½, классы (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ Π²ΡΠ΅ связанныС с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ возмоТности, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ наслСдованиС, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ-Ρ‡Π»Π΅Π½Ρ‹, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, абстрактныС классы ΠΈ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€Ρ‹), пСрСопрСдСлСния ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π―Π·Ρ‹ΠΊ Π‘++ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях строТС относится ΠΊ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Ρ‚ΠΈΠΏΠΎΠ², Ρ‡Π΅ΠΌ Π‘.

Π’ Π‘++ появились ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ («//»), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π² ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ΅ Π‘ — языкС BCPL.

НСкоторыС особСнности Π‘++ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π±Ρ‹Π»ΠΈ пСрСнСсСны Π² Π‘, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова const ΠΈ inline, объявлСния Π² Ρ†ΠΈΠΊΠ»Π°Ρ… for ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΡΡ‚ΠΈΠ»Π΅ Π‘++ («//»). Π’ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… рСализациях Π‘ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π»ΠΈ прСдставлСны возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅Ρ‚ Π² Π‘++, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ макросы vararg ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° с ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Достоинства C++ — Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ язык, содСрТащий срСдства создания эффСктивных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ практичСски любого назначСния, ΠΎΡ‚ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹Ρ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π΄ΠΎ ΡΠ»ΠΎΠΆΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… комплСксов самого Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ назначСния. Π’ Ρ‡Π°ΡΡ‚ности:

— ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ стили ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ программирования, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ООП.

— Π˜ΠΌΠ΅Π΅Ρ‚ся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, адрСсами, ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ.

— Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΡ Π½Π° ΡΡ‚Π°ΠΏΠ΅ компиляции, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

— ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ.

— Π”оступны компиляторы для большого количСства ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для самых Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌ.

— Π­Ρ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ.

— Π―Π·Ρ‹ΠΊ спроСктирован Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ программисту ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ всСми аспСктами структуры ΠΈ ΠΏΠΎΡ€ΡΠ΄ΠΊΠ° исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Ни ΠΎΠ΄Π½Π° ΠΈΠ· ΡΠ·Ρ‹ΠΊΠΎΠ²Ρ‹Ρ… возмоТностСй, приводящая ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам, Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ для использования — ΠΏΡ€ΠΈ нСобходимости язык позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

НСдостатки ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ нСдостатки C++ унаслСдованы ΠΎΡ‚ ΡΠ·Ρ‹ΠΊΠ°-ΠΏΡ€Π΅Π΄ΠΊΠ° — Π‘ΠΈ, — ΠΈ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ большСй совмСстимости с Π‘ΠΈ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ нСдостатки, ΠΊΠ°ΠΊ:

— Π‘интаксис, ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ошибки: ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ присваивания обозначаСтся ΠΊΠ°ΠΊ =, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ сравнСния ΠΊΠ°ΠΊ ==. Π˜Ρ… Π»Π΅Π³ΠΊΠΎ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ, ΠΏΡ€ΠΈ этом опСрация присваивания Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, поэтому присваиваниС Π½Π° ΠΌΠ΅ΡΡ‚Π΅ выраТСния являСтся синтаксичСски ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ, Π° Π² ΠΊΠΎΠ½ΡΡ‚рукциях Ρ†ΠΈΠΊΠ»Π° ΠΈ Π²Π΅Ρ‚влСния появлСниС числа Π½Π° ΠΌΠ΅ΡΡ‚Π΅ логичСского значСния Ρ‚Π°ΠΊΠΆΠ΅ допустимо, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Π°Ρ конструкция оказываСтся синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ошибки: if (x=0) { ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ } Π—Π΄Π΅ΡΡŒ Π² ΡƒΡΠ»ΠΎΠ²Π½ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ ΠΏΠΎ ΠΎΡˆΠΈΠ±ΠΊΠ΅ написано присваиваниС вмСсто сравнСния. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x Ρ Π½ΡƒΠ»Ρ‘ΠΌ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° присвоит x Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ условия Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ if. Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½ΡƒΠ»ΡŒ соотвСтствуСт логичСскому Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ «Π»ΠΎΠΆΡŒ» (false), Π±Π»ΠΎΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Π² ΡƒΡΠ»ΠΎΠ²Π½ΠΎΠΉ конструкции Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ся Π½ΠΈΠΊΠΎΠ³Π΄Π°. Ошибки Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ, Π½ΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… соврСмСнных компиляторах прСдлагаСтся диагностика Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… конструкций. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ присваивания (=), ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (++), Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ (—) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π’ ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с ΠΎΠ±ΠΈΠ»ΠΈΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ это позволяСт, хотя ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Ρ‹Π²Π°Π΅Ρ‚, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ выраТСния. НаличиС этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² Π‘ΠΈ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ инструмСнт Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π°, Π½ΠΎ Π² Π½Π°ΡΡ‚оящСС врСмя ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ компиляторы ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ Π½Π° Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… выраТСниях. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² языков C ΠΈ C++ — ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ‚ΡŒ программисту ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π»ΡŽΠ±ΠΎΠΌ стилС, Π° Π½Π΅ Π½Π°Π²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ «Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ» ΡΡ‚ΠΈΠ»ΡŒ.

— ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ (#define) ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΌΠΎΡ‰Π½Ρ‹ΠΌ, Π½ΠΎ ΠΎΠΏΠ°ΡΠ½Ρ‹ΠΌ срСдством. Они сохранСны Π² C++ нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π½ΠΈΡ…, благодаря шаблонам ΠΈ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½Ρ‹ΠΌ функциям, Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ Π²Π΅Π»ΠΈΠΊΠ°. Π’ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½Ρ‹Ρ… стандартных Π‘-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ… ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасных макросов.

— ΠΠ΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π½Π΅ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹. Π’ Ρ‡Π°ΡΡ‚ности, опСрация Π½Π°Π΄ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ числами Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

— ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ break Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ‚Π²ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° switch ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ выполнСния Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π΅Ρ‚Π²Π΅ΠΉ ΠΏΡ€ΠΈ Π΅Π³ΠΎ отсутствии ΠΏΡ€ΠΎΠ²ΠΎΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки ΠΈΠ·-Π·Π° пропуска break. Π­Ρ‚Π° ΠΆΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ позволяСт Π΄Π΅Π»Π°Ρ‚ΡŒ ΡΠΎΠΌΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ «Ρ‚Ρ€ΡŽΠΊΠΈ», Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π½Π΅ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ break ΠΈ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°.

— ΠŸΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€, унаслСдованный ΠΎΡ‚ Π‘, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π΅Π½. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ с ΠΎΠ΄Π½ΠΎΠΉ стороны ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нСльзя (ΠΈΠ»ΠΈ тяТСло) ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ мСтапрограммирования, Π° Ρ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, вслСдствиС своСй примитивности, ΠΎΠ½ Ρ‡Π°ΡΡ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ дСйствий ΠΏΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Ρƒ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. НСкоторыС языки программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Scheme ΠΈ Nemerle) ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ бСзопасныС систСмы мСтапрограммирования (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ макросами, Π½ΠΎ ΠΌΠ°Π»ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ макросы Π‘/Π‘++).

— ΠŸΠ»ΠΎΡ…ая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΏΠΎ ΡΡƒΡ‚ΠΈ, Π² ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠΌ Π‘ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ языка отсутствуСт, Π΅Ρ‘ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠ΅Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ). ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ интСрфСйса внСшнСго модуля Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π΅ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΡƒΡŽ вставку Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° (#include) ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ замСдляСт ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ большого количСства ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обрабатываСтся компилятором, оказываСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π΅Π»ΠΈΠΊ). Π­Ρ‚Π° схСма Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ скопирована Π² C++. Для устранСния этого нСдостатка, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ компиляторы Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ прСкомпиляции Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Precompiled Headers.

К ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΌ нСдостаткам C++ ΠΌΠΎΠΆΠ½ΠΎ отнСсти: Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΈΠ·-Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… C++ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ, Π° ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ компилятора сопряТСно с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌ количСством ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π’ Ρ‡Π°ΡΡ‚ности: Π’ ΡΠ·Ρ‹ΠΊΠ΅ практичСски ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ сохранён Π½Π°Π±ΠΎΡ€ конструкций Π‘ΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ срСдства. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях Π½ΠΎΠ²Ρ‹Π΅ срСдства ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ ΡΡ‚Π°Ρ€Ρ‹Π΅, Π½ΠΎ Π² ΡΠ·Ρ‹ΠΊΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΎΠ±Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° мноТСствСнного наслСдования Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠžΠžΠŸ-подсистСмС языка Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ†Π΅Π»Ρ‹ΠΉ ряд логичСских ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ создаёт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трудности Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ компилятора. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ Π² ΡΠ²ΠΎΡ‘ΠΌ исходном Π²ΠΈΠ΄Π΅ приводят ΠΊ ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΊΠΎΠ΄Π° ΠΎΡ‡Π΅Π½ΡŒ большого ΠΎΠ±ΡŠΡ‘ΠΌΠ°, Π° Π²Π²Π΅Π΄Ρ‘нная ΠΏΠΎΠ·ΠΆΠ΅ Π² ΡΠ·Ρ‹ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ частичной спСцификации шаблонов Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠ° ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ся ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ компиляторами.

НСдостаток ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΈΠΏΠ°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎ Π²Ρ€Π΅ΠΌΡ компиляции (CTTI). ΠœΠ΅Ρ‚Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ шаблонов C++ слоТно ΠΈ ΠΏΡ€ΠΈ этом ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ях. Оно состоит Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ срСдствами шаблонов C++ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ языка программирования Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ компиляции. Π‘Π°ΠΌΠ° ΠΏΠΎ ΡΠ΅Π±Π΅ данная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ вСсьма ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Π°, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ вСсьма Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π―Π·Ρ‹ΠΊΠΈ Lisp/Scheme, Nemerle ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹Π΅ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ простыС для восприятия подсистСмы мСтапрограммирования. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΡΠ·Ρ‹ΠΊΠ΅ D Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° сравнимая ΠΏΠΎ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΠΈ, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ простая Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ подсистСма шаблонного мСтапрограммирования. Π₯отя дСкларируСтся, Ρ‡Ρ‚ΠΎ Π‘++ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅Π½Π½Ρ‹ΠΉ язык, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π² ΡΠ·Ρ‹ΠΊΠ΅ отсутствуСт ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования. ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π» устраняСтся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ (Loki, Boost) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌΠΈ срСдства мСтапрограммирования для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ конструкциями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ лямбд/Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²), Π½ΠΎ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ уступаСт качСству встроСнных Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ языки Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠ΅ возмоТности Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… языков, ΠΊΠ°ΠΊ сопоставлСниС с ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ, Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΊΡ€Π°ΠΉΠ½Π΅ слоТно ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ срСдствами мСтапрограммирования. НСкоторыС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ нСдостатком языка C++ отсутствиС встроСнной систСмы сборки мусора. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π² C++ имССтся достаточно срСдств, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ использованиС опасных ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ сборки мусора (Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π° Π½Π΅ ΡΠ·Ρ‹ΠΊΠ°). ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ встроСнной сборки мусора позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ самому Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ управлСния рСсурсами.

2.2 Π―Π·Ρ‹ΠΊ программирования C#

Π―Π·Ρ‹ΠΊ C# являСтся языком программирования, ΠΏΠΎ ΡΠΈΠ½Ρ‚аксису ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ Π½Π° Java (Π½ΠΎ Π½Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΌ Π΅ΠΌΡƒ). Однако Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ C# «ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΌ» Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ Java Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. C#, ΠΊΠ°ΠΊ ΠΈ Java, основан Π½Π° ΡΠΈΠ½Ρ‚аксичСских конструкциях C++. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Java, C# ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ «Ρ€Π°Ρ„ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ» вСрсиСй C++ - Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это языки ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСмСйства. МногиС синтаксичСскиС конструкции C# построСны с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, принятых Π² Visual Basic 6.0 ΠΈ C++. НапримСр, ΠΊΠ°ΠΊ ΠΈ Π² VB6, Π² C# ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ свойства Ρ‚ΠΈΠΏΠΎΠ² (Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ get ΠΈ set) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ объявлСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ числом Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² (Ρ‡Π΅Ρ€Π΅Π· массивы ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²). Подобно C++, Π² C# позволяСтся ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ созданиС структур, ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° (посрСдством Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΎΠ²).

Благодаря Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ C# являСтся Π³ΠΈΠ±Ρ€ΠΈΠ΄ΠΎΠΌ мноТСства языков, ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ синтаксичСски Ρ‚Π°ΠΊ ΠΆΠ΅ «Ρ‡ΠΈΡΡ‚», ΠΊΠ°ΠΊ Java (Ссли Π½Π΅ «Ρ‡ΠΈΡ‰Π΅»), ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ прост, ΠΊΠ°ΠΊ VB6, ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΌΠΎΡ‰ΡŒΡŽ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒΡŽ, ΠΊΠ°ΠΊ C++ (Π±Π΅Π· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… «ΡƒΠΆΠ°ΡΠ½Ρ‹Ρ…» конструкций).

По ΡΡƒΡ‚ΠΈ, язык C# ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ возмоТности (ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… присущи ΠΈ Π²ΡΠ΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ языкам программирования, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ .NET).

— ΠΠ΅ Ρ‚рСбуСтся Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ! ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° C# ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ прямого обращСния ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Слям (хотя имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ доступ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅, Ссли Π²Ρ‹ ΡΠΎΡ‡Ρ‚Π΅Ρ‚Π΅ это Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ).

— ΠΠ²Ρ‚оматичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ Ρ‡Π΅Ρ€Π΅Π· сборку мусора. По ΡΡ‚ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² C# Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ся ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово delete.

— Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ синтаксичСскиС конструкции для ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΉ, структур ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π² классов.

— ΠΠ½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π°Ρ C++ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π½ΠΎ Π±Π΅Π· Π»ΠΈΡˆΠ½ΠΈΡ… слоТностСй (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π°ΠΌ Π½Π΅ Ρ‚рСбуСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ «Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ *this для связывания»).

— Π’ C# 2005 имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ Ρ‡Π»Π΅Π½Ρ‹ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ синтаксиса, ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π³ΠΎ Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ C++.

— ΠŸΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ аспСктно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования (АОП) Ρ‡Π΅Ρ€Π΅Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹. Π­Ρ‚Π° Π²Π΅Ρ‚Π²ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ позволяСт Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ характСристики Ρ‚ΠΈΠΏΠ°ΠΌ ΠΈ ΠΈΡ… Ρ‡Π»Π΅Π½Π°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡ‚ΠΎΡ‡Π½ΡΡ‚ΡŒ ΠΈΡ… ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, самым Π²Π°ΠΆΠ½Ρ‹ΠΌ для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ понимания языка C#, поставляСмого Microsoft Π² ΡΠ²ΡΠ·ΠΊΠ΅ с ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ .NET, являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹ΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ C# ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΡΡ€Π΅Π΄Π΅ выполнСния .NET (Π²Ρ‹ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ C# для построСния «ΠΊΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠΎΠ³ΠΎ» COM-сСрвСра ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ прилоТСния Win32 API). ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для описания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для срСды выполнСния .NET, — управляСмый ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ (managed code). Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, содСрТащий Ρ‚Π°ΠΊΠΎΠΉ управляСмый ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, называСтся ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΎΠΌ (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅). Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ нСпосрСдствСнно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ срСдой выполнСния .NET, называСтся нСуправляСмым ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (unmanaged code).

2.3 Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Eclipse

ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Eclipse Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»Π°ΡΡŒ Ρ„ΠΈΡ€ΠΌΠΎΠΉ IBM ΠΊΠ°ΠΊ ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ IBM VisualAge, Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ стандарта IDE для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках ΠΏΠΎΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ IBM. По ΡΠ²Π΅Π΄Π΅Π½ΠΈΡΠΌ IBM, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° стоили 40 ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ ΠΈ ΡΠ΄Π΅Π»Π°Π½ доступным послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Eclipse Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ для дальнСйшСго развития нСзависимому ΠΎΡ‚ IBM сообщСству.

Π’ Eclipse 3.0 (2003 Π³ΠΎΠ΄) Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ спСцификации сСрвисной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ OSGi, ΠΊΠ°ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния. Π‘ Π²Π΅Ρ€ΡΠΈΠΈ 3.0 Eclipse пСрСстал Π±Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ IDE, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π° ΡΠ°ΠΌ стал Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ. Π’ ΠΎΡΠ½ΠΎΠ²Π΅ Π»Π΅ΠΆΠ°Ρ‚ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ OSGi ΠΈ SWT/JFace, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ слой — RCP (Rich Client Platform, ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Ρ… клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ). RCP слуТит основой Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Eclipse, Π½ΠΎ ΠΈ Π΄Π»Ρ Π΄Ρ€ΡƒΠ³ΠΈΡ… RCP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Azureus ΠΈ File Arranger. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ слой — сам Eclipse, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой Π½Π°Π±ΠΎΡ€ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ RCP — Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΏΠ°Π½Π΅Π»ΠΈ, пСрспСктивы, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ CVS ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Java Development Tools (JDT).

Π‘ 2006 Π³ΠΎΠ΄Π° Ρ„ΠΎΠ½Π΄ Eclipse ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½Ρ‹ΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ€Π΅Π»ΠΈΠ· (Simultaneous Release), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ происходит Π² ΠΈΡŽΠ½Π΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ выпуск Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Eclipse, Π° Ρ‚Π°ΠΊΠΆΠ΅ ряд Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Eclipse.

Eclipse слуТит Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ, Ρ‡Π΅ΠΌ ΠΎΠ½ ΠΈ Π·Π°Π²ΠΎΠ΅Π²Π°Π» ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ: любой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Eclipse своими модулями. Π£ΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Java Development Tools (JDT), C/C++ Development Tools (CDT), Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ QNX совмСстно с IBM, ΠΈ ΡΡ€Π΅Π΄ΡΡ‚Π²Π° для языков Ada (GNATbench, Hibachi), COBOL, FORTRAN, PHP ΠΈ ΠΏΡ€. ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ дополняСт срСду Eclipse ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π°ΠΌΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, сСрвСрами ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Ρ€.

Eclipse JDT (Java Development Tools) — Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ извСстный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π½Π°Ρ†Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π½Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ: срСда ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° с ΡΠΈΡΡ‚Π΅ΠΌΠ°ΠΌΠΈ управлСния вСрсиями — CVS, GIT Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ поставкС, для Π΄Ρ€ΡƒΠ³ΠΈΡ… систСм (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Subversion, MS SourceSafe) ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ связи ΠΌΠ΅ΠΆΠ΄Ρƒ IDE ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ управлСния Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ (ошибками). Π’ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ поставкС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€Π° ошибок Bugzilla, Ρ‚Π°ΠΊΠΆΠ΅ имССтся мноТСство Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚Ρ€Π΅ΠΊΠ΅Ρ€ΠΎΠ² (Trac, Jira ΠΈ Π΄Ρ€.). Π’ ΡΠΈΠ»Ρƒ бСсплатности ΠΈ Π²Ρ‹ΡΠΎΠΊΠΎΠ³ΠΎ качСства, Eclipse Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… организациях являСтся ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ стандартом для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Eclipse написана Π½Π° Java, ΠΏΠΎΡ‚ΠΎΠΌΡƒ являСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-нСзависимым ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ SWT, которая разрабатываСтся для всСх распространённых ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ (см. Π½ΠΈΠΆΠ΅). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SWT ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто стандартной для Java Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Swing. Она ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ опираСтся Π½Π° Π½ΠΈΠΆΠ΅Π»Π΅ΠΆΠ°Ρ‰ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму), Ρ‡Ρ‚ΠΎ обСспСчиваСт быстроту ΠΈ Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ внСшний Π²ΠΈΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости ΠΈ ΡƒΡΡ‚ойчивости ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Основой Eclipse являСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (RCP — ΠΎΡ‚ Π°Π½Π³Π». rich client platform). Π•Ρ‘ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

— Π―Π΄Ρ€ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Eclipse, запуск ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ);

— OSGi (стандартная срСда поставки ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΠΎΠ² (Π°Π½Π³Π». bundles));

— SWT (ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ инструмСнтарий Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ²);

— JFace (Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ Π±ΡƒΡ„Π΅Ρ€Ρ‹, Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Скстом, тСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹);

— Π Π°Π±ΠΎΡ‡Π°Ρ срСда Eclipse (ΠΏΠ°Π½Π΅Π»ΠΈ, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹, ΠΏΡ€ΠΎΠ΅ΠΊΡ†ΠΈΠΈ, мастСры).

GUI Π² Eclipse, написан с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ инструмСнтария SWT. ПослСдний, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Swing (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ эмулируСт графичСскиС элСмСнты управлСния), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ графичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс Eclipse Ρ‚Π°ΠΊΠΆΠ΅ зависит ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ слоя GUI, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ JFace, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ построСниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Π±Π°Π·ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° SWT.

Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Eclipse обСспСчиваСтся Π·Π° ΡΡ‡Ρ‘Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, благодаря Ρ‡Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Java, Π½ΠΎ ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C/C++, Perl, Groovy, Ruby, Python, PHP, Erlang, ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ Паскаля, Zonnon ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ….

3. ΠžΠ±Π·ΠΎΡ€ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² распознания ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях

3.1 Алгоритм поиска максимума кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

ДискрСтной кросскоррСляций Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ f (t) ΠΈ g (t), ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π½Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π΅ Ρ†Π΅Π»Ρ‹Ρ… чисСл Z, называСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ опСрация:

ΠšΡ€ΠΎΡΡΠΊΠΎΡ€Ρ€Π΅Π»ΡΡ†ΠΈΡ Ρ‡Π°Ρ‰Π΅ всСго примСняСтся Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ сигналов, ΠΏΡ€ΠΈ этом f ΡΡ‡ΠΈΡ‚аСтся ΠΎΠ±Ρ€Π°Π·Ρ†ΠΎΠΌ, Π° g — сигналом, содСрТащим ΠΎΠ±Ρ€Π°Π·Π΅Ρ†. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ — это Π²Π΅ΠΊΡ‚ΠΎΡ€ чисСл, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…, насколько сильно ΠΎΠ±Ρ€Π°Π·Π΅Ρ† Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ Π² ΡΠΈΠ³Π½Π°Π»Π΅. Π’ Π½Π°ΡˆΠ΅ΠΌ случаС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ наши изобраТСния Π² Π²ΠΈΠ΄Π΅ Π΄Π²ΡƒΡ… дискрСтных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ яркости ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ кросс-коррСляции. ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΉ области Π³Π΄Π΅ изобраТСния ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ большС всСго. По ΡΡƒΡ‚ΠΈ опСрация кросс-коррСляции являСтся свСрткой Π΄Π²ΡƒΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

3.1.1 ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска максимума дискрСтной кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚ Π΄Π²ΡƒΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅ опСрация кросс-коррСляции ΠΏΠΎ ΡΡƒΡ‚ΠΈ являСтся свСрткой Π΄Π²ΡƒΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π‘Π²Ρ‘Ρ€Ρ‚ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — опСрация Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ «ΡΡ…ΠΎΠΆΠ΅ΡΡ‚ΡŒ» ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠΉ ΠΈ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΉ ΠΊΠΎΠΏΠΈΠ΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Бвойства:

1. ΠšΠΎΠΌΠΌΡƒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ:

f * g = g * f

2. ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ:

f * (g * h) = (f * g) * h

3. Π”ΠΈΡΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ:

f * (g + h) = (f * g) + (f * h)

4. ΠΡΡΠΎΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ умноТСния Π½Π° ΡΠΊΠ°Π»ΡΡ€:

5. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ диффСрСнцирования:

D (f * g) = Df * g = f * Dg,

Π³Π΄Π΅ Df ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f.

6. Бвойство Π€ΡƒΡ€ΡŒΠ΅-ΠΎΠ±Ρ€Π°Π·Π°:

Π³Π΄Π΅ F (f)

ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f.

Как слСдствиС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ свойством 6 свСртки.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅ — опСрация, ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вСщСствСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ вСщСствСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π­Ρ‚Π° новая функция описываСт коэффициСнты («Π°ΠΌΠΏΠ»ΠΈΡ‚ΡƒΠ΄Ρ‹») ΠΏΡ€ΠΈ Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ исходной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ — гармоничСскиС колСбания с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ частотами.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ являСтся ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ Π·Π°Π΄Π°Π΅Ρ‚ся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ:

По ΡΡƒΡ‚ΠΈ говоря, ΠΌΡ‹ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ вычислСния свСртки ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ умноТСния Π€ΡƒΡ€ΡŒΠ΅-ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ яркости ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π§Ρ‚ΠΎ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ Π½Π°ΡˆΠ΅ΠΉ области ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ дискрСтным ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π€ΡƒΡ€ΡŒΠ΅.

ΠŸΡ€ΡΠΌΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:

ΠžΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅:

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΡ прямоС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ Ρ„ункциям яркости Π½Π°ΡˆΠΈΡ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° комплСксных чисСл. ΠŸΠ΅Ρ€Π΅ΠΌΠ½ΠΎΠΆΠ°Ρ поэлСмСнтно ΠΈΡ…, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ комплСксных чисСл. БСря ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π€ΡƒΡ€ΡŒΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ свСртки. Находя максимум срСди этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΡ‡ΠΊΡƒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ наши Π΄Π²Π° изобраТСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ…ΠΎΠΆΠΈ.

Достоинства ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

— ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

— Π‘ыстрота Ρ€Π°Π±ΠΎΡ‚Ρ‹ (ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅)

— ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ

— Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ НСдостатки ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

— Π’. ΠΊ. ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡ‰Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ максимум, Ρ‚ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 совпадСниС

— ΠΠ΅ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ² ΠΊ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°ΠΌ

— ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ»ΠΎΡ…ΠΎ устойчив ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΎΠ±Ρ‰Π΅Π³ΠΎ уровня яркости ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

3.1.2 ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° поиска максимума кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Ρ€Π°Π½Π΅Π΅, Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡ‰Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ максимум, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ лишь 1 совпадСниС. Данная модификация ΠΏΡ€ΠΈΠ·Π²Π°Π½Π° Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

РСшСниС Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ глобального максимума Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ нСсколькими способами

— ΠΠ°ΠΉΡ‚ΠΈ всС Ρ‚ΠΎΡ‡ΠΊΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ i, j Ρ‚Π°ΠΊΠΈΠ΅ Ρ‡Ρ‚ΠΎ Π³Π΄Π΅ maxi ΠΈ maxj ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ глобального максимума, Π° e Π½Π΅ΠΊΠΎΡ‚орая константа. Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами.

— ΠΠ°ΠΉΡ‚ΠΈ всС Ρ‚ΠΎΡ‡ΠΊΠΈ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ i, j Ρ‚Π°ΠΊΠΈΠ΅ Ρ‡Ρ‚ΠΎ Π³Π΄Π΅ w-ΡˆΠΈΡ€ΠΈΠ½Π° изобраТСния h — высота изобраТСния N=w*h.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ являСтся ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ дСтСктирования лишь 1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°.

3.2 ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ устойчивых ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² изобраТСния: ΠΌΠ΅Ρ‚ΠΎΠ΄ SURF

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ. Для изобраТСния сцСны ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ эталона с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SURF находятся особыС Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ дСскрипторы для Π½ΠΈΡ…. Бравнивая эти Π½Π°Π±ΠΎΡ€Ρ‹ дСскрипторов, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ эталонный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π° ΡΡ†Π΅Π½Π΅. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

SURF Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΄Π²Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ — поиск особых Ρ‚ΠΎΡ‡Π΅ΠΊ изобраТСния ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡ… Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€ΠΎΠ², ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½Ρ‹Ρ… ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρƒ ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ. ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΈΡ‰Π΅Ρ‚ особыС Ρ‚ΠΎΡ‡ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС. Π”Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС (Ρ‚.Π½. гСссиан) достигаСт экстрСмума Π² Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… максимального измСнСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° яркости. Он Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ пятна, ΡƒΠ³Π»Ρ‹ ΠΈ ΠΊΡ€Π°Ρ Π»ΠΈΠ½ΠΈΠΉ. ГСссиан ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вращСния. Но Π½Π΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρƒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ SURF ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для нахоТдСния гСссианов.

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ считаСтся Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ максимального измСнСния яркости (Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚) ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±, взятый ΠΈΠ· ΠΌΠ°ΡΡˆΡ‚Π°Π±Π½ΠΎΠ³ΠΎ коэффициСнта ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС.

Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ вычисляСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π₯Π°Π°Ρ€Π°.

ПослС нахоТдСния ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ, SURF Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Ρ‹. ДСскриптор прСдставляСт собой Π½Π°Π±ΠΎΡ€ ΠΈΠ· 64(Π»ΠΈΠ±ΠΎ 128) чисСл для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. Π­Ρ‚ΠΈ числа ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ Ρ„Π»ΡƒΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Π²ΠΎΠΊΡ€ΡƒΠ³ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ (Ρ‡Ρ‚ΠΎ понимаСтся ΠΏΠΎΠ΄ Ρ„Π»ΡƒΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠ΅ΠΉ — рассмотрим Π½ΠΈΠΆΠ΅). ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΡŽΡ‡Π΅Π²Π°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° прСдставляСт собой максимум гСссиана, Ρ‚ΠΎ ΡΡ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² ΠΎΠΊΡ€Π΅ΡΡ‚ности Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ участки с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, обСспСчиваСтся диспСрсия (Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅) дСскрипторов для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. Π€Π»ΡƒΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° окрСстностСй ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ направлСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ‚ΠΎΡ‡ΠΊΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ (ΠΏΠΎ Π²ΡΠ΅ΠΉ окрСстности ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, достигаСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ дСскриптора ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вращСния. Π Π°Π·ΠΌΠ΅Ρ€ ΠΆΠ΅ области, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ считаСтся дСскриптор, опрСдСляСтся ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС, Ρ‡Ρ‚ΠΎ обСспСчиваСт ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°.

Π€Π»ΡƒΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π₯Π°Π°Ρ€Π°.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС Для эффСктивного вычислСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ГСссС ΠΈ Π₯Π°Π°Ρ€Π° — ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.

Если ΠΊΡ€Π°Ρ‚ΠΊΠΎ, Ρ‚ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС являСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ, Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ совпадаСт с Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ исходного изобраТСния, Π° ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:

Π“Π΄Π΅ I (i, j) — ΡΡ€ΠΊΠΎΡΡ‚ΡŒ пиксСлСй исходного изобраТСния.

ИмСя ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ быстро Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ сумму яркостСй пиксСлСй ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹Ρ… областСй изобраТСния, ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:

SumOfRect (ABCD) = II (A) + II (Π‘) — II (B) — II (D)

Π“Π΄Π΅ ABCD — ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ нас ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ.

ВычислСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС. ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ особых Ρ‚ΠΎΡ‡Π΅ΠΊ Π² SURF основано Π½Π° Π²Ρ‹Ρ‡ΠΈΡΠ»Π΅Π½ΠΈΠΈ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС (гСссиана).

ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° ГСссС для Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΅Π΅ Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚ опрСдСляСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ гСссиана ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для нахоТдСния локального ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΈΠ»ΠΈ максимума яркости изобраТСния. Π’ ΡΡ‚ΠΈΡ… Ρ‚ΠΎΡ‡ΠΊΠ°Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ гСссиана достигаСт экстрСмума. ВСорСтичСски, вычислСниС ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС сводится ΠΊ Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΡŽ Лапласиана Гауссиан.

По ΡΡƒΡ‚ΠΈ, элСмСнты ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ свСртка (сумма ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠΉ) пиксСлСй изобраТСния Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹Π΅ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1:

Рисунок 1

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ дискрСтизированныС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ для нахоТдСния Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… элСмСнтов ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС (Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ — совпадаСт с Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ГСссС симмСтрична). Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ пространствСнный ΠΌΠ°ΡΡˆΡ‚Π°Π± 9×9 пиксСлСй. Π’Π΅ΠΌΠ½Ρ‹Π΅ участки ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ значСниям Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, свСтлыС — ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Однако, SURF Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ лапласиан гауссианы Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΡŽ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ², дискрСтизированный лапласиан гауссианы ΠΈΠΌΠ΅Π΅Ρ‚ довольно большой разброс значСния Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚Π°, ΠΏΡ€ΠΈ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·Ρ†Π° (Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² ΠΈΠ΄Π΅Π°Π»Π΅ гСссиан Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΊ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ). ОсобСнно Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚ «ΠΏΡ€ΠΎΡΠ΅Π΄Π°Π΅Ρ‚» Π² Ρ€Π°ΠΉΠΎΠ½Π΅ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° Π½Π° 45 градусов. А Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, ΠΈ ΡΡ‚ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для лапласиана гауссианы ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. ΠŸΠΎΡ‡Ρ‚ΠΈ всС пиксСли Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ яркости. А ΡΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ расчёта, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ изобраТСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ SURF ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ½Π°Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π°ΠΏΠΏΡ€ΠΎΠΊΡΠΈΠΌΠ°Ρ†ΠΈΡŽ лапласиана гауссиан (Π°Π²Ρ‚ΠΎΡ€Ρ‹ Π½Π°Π·Π²Π°Π»ΠΈ Π΅Π³ΠΎ Fast-Hessian):

Рисунок 2

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 2 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для нахоТдСния ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС Π² SURF. Π‘Π΅Π»Ρ‹Π΅ области ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ +1, Ρ‡Π΅Ρ€Π½Ρ‹Π΅ -2 (Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π΅ -1), сСрыС — Π½ΡƒΠ»Π΅Π²Ρ‹Π΅. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π± — 9×9 пиксСлСй.

Π­Ρ‚ΠΎΡ‚ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π±ΠΎΠ»Π΅Π΅ устойчив ΠΊ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ эффСктивно Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π² SURF, гСссиан вычисляСтся Ρ‚Π°ΠΊ:

Π“Π΄Π΅ Dxx, Dyy, Dxy — свСртки ΠΏΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΌ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ Π²Π²Π΅Ρ€Ρ…Ρƒ. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚ 0.9 ΠΈΠΌΠ΅Π΅Ρ‚ тСорСтичСскоС обоснованиС, ΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ вычислСний.

Π˜Ρ‚Π°ΠΊ, для нахоТдСния особых Ρ‚ΠΎΡ‡Π΅ΠΊ, SURF пробСгаСтся ΠΏΠΎ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌ изобраТСния ΠΈ ΠΈΡ‰Π΅Ρ‚ максимум гСссиана. Бпособ нахоТдСния локального максимума гСссиана ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΏΠΎΠ·Π΄Π½Π΅Π΅. Π’ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ задаСтся ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ гСссиана. Если вычислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для пиксСля Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΡ€ΠΎΠ³Π° — пиксСль рассматриваСтся ΠΊΠ°ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π° ΠΊΠ»ΡŽΡ‡Π΅Π²ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ.

Π’ΡƒΡ‚ Π΅Ρ‰Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ гСссиан являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠΉ, ΠΈ Π·Π°Π²ΠΈΡΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Π° яркости, Π½ΠΎ Π½Π΅ ΠΎΡ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ Π΅Π΅ ΡƒΡ€ΠΎΠ²Π½Ρ, Ρ‚ΠΎ ΠΎΠ½ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡŽ ΠΊ ΡΠ΄Π²ΠΈΠ³Ρƒ яркости изобраТСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ уровня освСщСния ΠΎΠ±Ρ€Π°Π·Ρ†Π° Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ‚ Π½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, свойства гСссиана Ρ‚Π°ΠΊΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Π΅Ρ‚ максимума, ΠΊΠ°ΠΊ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ Π±Π΅Π»ΠΎΠ³ΠΎ пятна Π½Π° Ρ‡Π΅Ρ€Π½ΠΎΠΌ Ρ„ΠΎΠ½Π΅, Ρ‚Π°ΠΊ ΠΈ Ρ‡Π΅Ρ€Π½ΠΎΠ³ΠΎ пятна Π½Π° Π±Π΅Π»ΠΎΠΌ Ρ„ΠΎΠ½Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹Π΅, ΠΈ ΡΠ²Π΅Ρ‚Π»Ρ‹Π΅ особСнности изобраТСния.

Π¨ΠΊΠ°Π»Ρ‹ Как ΡƒΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ, гСссиан Π½Π΅ ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ пиксСля, гСссиан ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°.

РСшСниС этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎ — ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡƒ пиксСлю.

Из ΡΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ симмСтрии ΠΈ Π΄ΠΈΡΠΊΡ€Π΅Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Fast-Hessian Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния. ДопустимыС Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ этого Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Ρ‚Π°ΠΊΠΎΠ²Ρ‹ (начиная с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ): 9, 15, 21, 27 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, с ΡˆΠ°Π³ΠΎΠΌ 6. Однако, Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, постСпСнно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π½Π° 6 — Π½Π΅ Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ для ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ² шаг 6 оказываСтся слишком ΠΌΠ΅Π»ΠΊΠΈΠΌ, Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ — ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ (ΠΈ ΠΏΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ), SURF Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ всС мноТСство ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ² Π½Π° Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΊΡ‚Π°Π²Ρ‹.

КаТдая ΠΎΠΊΡ‚Π°Π²Π° ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ², ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свой Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°.

ΠŸΡ€ΠΈ этом Ссли Π±Ρ‹ Π½Π° ΠΎΠΊΡ‚Π°Π²Ρƒ приходился Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, это Π±Ρ‹Π»ΠΎ Π±Ρ‹ слишком Π³Ρ€ΡƒΠ±Ρ‹ΠΌ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ Π±Ρ‹ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π½Π°ΠΉΡ‚ΠΈ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ максимум гСссиана, срСди Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ², Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΊΡ‚Π°Π²Π°Ρ…. Π’Π΅Π΄ΡŒ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Ρ‚ΠΎΡ‡ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… максимумов гСссиана, Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°Ρ…. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅:

Рисунок 3

Рисунок 3 ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΄Π²Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ изобраТСния.

Если ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΊΠ°Ρ‚ΡŒ максимум срСди всСх гСссианов, ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°ΠΌ, Ρ‚ΠΎ ΠΌΡ‹ Π±Ρ‹ нашли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΠΎΠ², Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько. Один — Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅, Π΄Ρ€ΡƒΠ³ΠΎΠΉ — Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½ΠΎΠ³ΠΎ, ΠΎΠΊΡ‚Π°Π²Π° содСрТит Π½Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€, Π° Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π± ΠΎΠΊΡ‚Π°Π²Ρ‹:

Рисунок 4

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 4 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ‚Ρ€ΠΈ ΠΎΠΊΡ‚Π°Π²Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SURF. Π¦ΠΈΡ„Ρ€Ρ‹ Π² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°Ρ… ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Fast-Hessian. ЛогарифмичСская шкала снизу — ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹, ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΎΠΊΡ‚Π°Π²Π°ΠΌΠΈ.

Π¨Π°Π³ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Π΅ — составляСт 6, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ — 12, Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ — 24 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Как Π²ΠΈΠ΄ΠΈΠΌ, ΠΎΠΊΡ‚Π°Π²Ρ‹ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ нахоТдСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… максимумов. ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π² ΠΎΠΊΡ‚Π°Π²Π΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° станСт ясно ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π³Π»Π°Π²Ρ‹.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Π° ΡΠΊΠΎΠ»ΡŒΠΊΠΎ собствСнно ΠΎΠΊΡ‚Π°Π² достаточно для покрытия мноТСства особых Ρ‚ΠΎΡ‡Π΅ΠΊ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ²? ВСорСтичСски, ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ бСсконСчны, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… изобраТСниях, ΠΎΠ½ΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹, ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ масса сосрСдоточСна Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ ΠΎΡ‚ 1 Π΄ΠΎ 10 (ΠΏΠΎ Π΄Π°Π½Π½Ρ‹ΠΌ Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°). Для покрытия этого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° достаточно Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΎΠΊΡ‚Π°Π². Плюс добавляСтся ΠΎΠ΄Π½Π° ΠΈΠ»ΠΈ Π΄Π²Π΅ ΠΎΠΊΡ‚Π°Π²Ρ‹ для покрытия Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ². Π˜Ρ‚ΠΎΠ³ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ 5−6 ΠΎΠΊΡ‚Π°Π². ВСорСтичСски, этого Π²ΠΏΠΎΠ»Π½Π΅ достаточно для покрытия всСвозмоТных ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ 1024×768 пиксСлов.

НахоТдСниС локального максимума гСссиана Для нахоТдСния локального максимума гСссиана, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ сосСдних Ρ‚ΠΎΡ‡Π΅ΠΊ 3x3x3.

Π•Π³ΠΎ смысл понятСн ΠΈΠ· Ρ€ΠΈΡΡƒΠ½ΠΊΠ° Π½ΠΈΠΆΠ΅:

Рисунок 5

ПиксСль, ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΉ крСстиком считаСтся Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ максимумом, Ссли Π΅Π³ΠΎ гСссиан большС Ρ‡Π΅ΠΌ Ρƒ Π»ΡŽΠ±ΠΎΠ³ΠΎ Π΅Π³ΠΎ сосСда Π² Π΅Π³ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ большС любого ΠΈΠ· ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ мСньшС ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠΌ большС (всСго 26 сосСдСй).

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Ρ‚Π°ΠΊΠΎΠ³ΠΎ опрСдСлСния локального максимума, понятно, Ρ‡Ρ‚ΠΎ ΠΎΠΊΡ‚Π°Π²Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Ρ… Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΠΈΠ½Π°Ρ‡Π΅ ΠΌΡ‹ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ нахоТдСния локального максимума гСссиана Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠΊΡ‚Π°Π²Ρ‹.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Π΅Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΎΠΊΡ‚Π°Π²Ρ‹ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π΅ Π΄Π»Ρ всСх пиксСлов подряд.

ΠŸΠ΅Ρ€Π²Π°Ρ ΠΎΠΊΡ‚Π°Π²Π° считаСтся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ пиксСля изобраТСния. Вторая — для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΠΎΠ³ΠΎ, Ρ‚Ρ€Π΅Ρ‚ΡŒΡ — для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ восьмого ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Бмысл понятСн — Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ с Ρ€Π°ΡΡΡ‚ояниСм 2 Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ максимума ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° 2, 3 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ высоких ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ². ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅Ρ‚ смысла ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Ρ‚ΡŒ всС Ρ‚ΠΎΡ‡ΠΊΠΈ изобраТСния, для нахоТдСния максимума ΠΌΠ°ΡΡˆΡ‚Π°Π±Π° 3, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

Π£Π΄Π²ΠΎΠ΅Π½ΠΈΠ΅ шага пиксСлСй для ΠΎΠΊΡ‚Π°Π² позволяСт ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ расчётС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². Как Π²Ρ‹ Π½Π°Π²Π΅Ρ€Π½ΠΎ ΡƒΠΆΠ΅ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π² ΠΎΠΊΡ‚Π°Π²Π°Ρ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 27 присутствуСт Π² Ρ‚Ρ€Π΅Ρ… ΠΎΠΊΡ‚Π°Π²Π°Ρ…. Π’Π°ΠΊ Π²ΠΎΡ‚, ΠΏΡ€ΠΈ вычислСниях, этот Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹. Вторая ΠΈ Ρ‚Ρ€Π΅Ρ‚ΡŒΡ — просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ расчёты ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹. А ΡƒΠ΄Π²ΠΎΠ΅Π½ΠΈΠ΅ шага пиксСлСй Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½ΡƒΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ гСссиан, ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ просчитаны ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΎΠΊΡ‚Π°Π²ΠΎΠΉ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΊΡ‚Π°Π²Π° содСрТит Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ каТдая ΠΎΠΊΡ‚Π°Π²Π° (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ) считаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹Ρ… для Π½Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°, Π΄Π²Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… — всСгда ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΎΠΊΡ‚Π°Π². ΠŸΠ΅Ρ€Π²Π°Ρ ΠΆΠ΅ ΠΎΠΊΡ‚Π°Π²Π° Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π° ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ своих Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°.

Π˜Ρ‚Π°ΠΊ, послС нахоТдСния максимального гСссиана ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ сосСдних Ρ‚ΠΎΡ‡Π΅ΠΊ 3x3x3, ΠΌΡ‹ Π½Π°ΡˆΠ»ΠΈ пиксСль, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ этот максимум достигаСтся. Однако, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ, ΠΎΠΊΡ‚Π°Π²Π° ΠΏΠ΅Ρ€Π΅Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π΅ Π²ΡΠ΅ Ρ‚ΠΎΡ‡ΠΊΠΈ изобраТСния, Ρ‚ΠΎ ΠΈΡΡ‚ΠΈΠ½Π½Ρ‹ΠΉ максимум ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌ пиксСлСм, Π° Π»Π΅ΠΆΠ°Ρ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ рядом, Π² ΡΠΎΡΠ΅Π΄Π½ΠΈΡ… пиксСлях. Для нахоТдСния Ρ‚ΠΎΡ‡ΠΊΠΈ истинного максимума, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… гСссианов ΠΊΡƒΠ±Π° 3x3x3 ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ. Π”Π°Π»Π΅Π΅, вычисляСтся производная (ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Ρ… разностСй сосСдних Ρ‚ΠΎΡ‡Π΅ΠΊ). Если ΠΎΠ½Π° Π±Π»ΠΈΠ·ΠΊΠ° ΠΊ Π½ΡƒΠ»ΡŽ — ΠΌΡ‹ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ истинного максимума. Если производная Π²Π΅Π»ΠΈΠΊΠ° — сдвигаСмся Π² ΡΡ‚ΠΎΡ€ΠΎΠ½Ρƒ Π΅Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ, ΠΈ ΠΏΠΎΠ²Ρ‚оряСм ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° производная Π½Π΅ ΡΡ‚Π°Π½Π΅Ρ‚ мСньшС Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡ€ΠΎΠ³Π°. Если Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΡ‹ ΠΎΡ‚Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ слишком Π΄Π°Π»Π΅ΠΊΠΎ, Ρ‚ΠΎ ΡΡ‚ΠΎ считаСтся Π»ΠΎΠΆΠ½Ρ‹ΠΌ максимумом, ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ° большС Π½Π΅ ΡΡ‡ΠΈΡ‚аСтся особой.

НахоТдСниС ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ особой Ρ‚ΠΎΡ‡ΠΊΠΈ. Для инвариантности вычислСния дСскрипторов особой Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π½ΠΈΠΆΠ΅, трСбуСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‰ΡƒΡŽ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄ΠΎΠ² яркости Π² ΠΎΡΠΎΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅. Π­Ρ‚ΠΎ понятиС Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ ΠΏΠΎΠ½ΡΡ‚ΠΈΡŽ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ SURF ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ нахоТдСния Π²Π΅ΠΊΡ‚ΠΎΡ€Π° ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π‘Π½Π°Ρ‡Π°Π»Π°, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Π΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΠΈΠΊΡΠ΅Π»ΡΡ…, сосСдних с ΠΎΡΠΎΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Для рассмотрСния бСрутся пиксСли Π² ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΠΈ радиуса 6s Π²ΠΎΠΊΡ€ΡƒΠ³ особой Ρ‚ΠΎΡ‡ΠΊΠΈ. Π“Π΄Π΅ s — ΠΌΠ°ΡΡˆΡ‚Π°Π± особой Ρ‚ΠΎΡ‡ΠΊΠΈ. Для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹ бСрутся Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΠ· ΠΎΠΊΡ€Π΅ΡΡ‚ности радиусом 12.

Для вычислСния Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π₯Π°Π°Ρ€Π°. Π Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° бСрСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 4s, Π³Π΄Π΅ s — ΠΌΠ°ΡΡˆΡ‚Π°Π± особой Ρ‚ΠΎΡ‡ΠΊΠΈ. Π’ΠΈΠ΄ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π₯Π°Π°Ρ€Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 6:

Рисунок 6

Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π₯Π°Π°Ρ€Π°. Π§Π΅Ρ€Π½Ρ‹Π΅ области ΠΈΠΌΠ΅ΡŽΡ‚ значСния -1, Π±Π΅Π»Ρ‹Π΅ +1. Π€ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π₯Π°Π°Ρ€Π° Π΄Π°ΡŽΡ‚ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄Π° яркости ΠΏΠΎ ΠΎΡΠΈ X ΠΈ Y ΡΠΎΠΎΡ‚вСтствСнно.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ Π₯Π°Π°Ρ€Π° ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ, ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ Π»Π΅Π³ΠΊΠΎ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹. Для расчёта ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° трСбуСтся всСго 6 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ЗначСния Π²Π΅ΠΉΠ²Π»Π΅Ρ‚Π° Π₯Π°Π°Ρ€Π° dX ΠΈ dY для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° Π²Π΅Ρ ΠΈ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ся Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ВСс опрСдСляСтся ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ гауссианы с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² ΠΎΡΠΎΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΈ ΡΠΈΠ³ΠΌΠΎΠΉ Ρ€Π°Π²Π½ΠΎΠΉ 2s. Π’Π·Π²Π΅ΡˆΠΈΠ²Π°Π½ΠΈΠ΅ Π½Π° Π³Π°ΡƒΡΡΠΈΠ°Π½Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для отсСчСния случайных ΠΏΠΎΠΌΠ΅Ρ… Π½Π° Π΄Π°Π»Π΅ΠΊΠΈΡ… ΠΎΡ‚ ΠΎΡΠΎΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ расстояниях.

Π”Π°Π»Π΅Π΅, всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ значСния dX ΠΈ dY, условно наносятся Π² Π²ΠΈΠ΄Π΅ Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 7:

Рисунок 7

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 7 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ Π² Π²ΠΈΠ΄Π΅ Ρ‚ΠΎΡ‡Π΅ΠΊ Π² ΠΏΡ€ΠΎΡΡ‚ранствС dXdY.

Π”Π°Π»Π΅Π΅, бСрСтся ΡƒΠ³Π»ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ сСрым Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅) Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Ρ€/3, ΠΈ Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ся Π²ΠΎΠΊΡ€ΡƒΠ³ Ρ†Π΅Π½Ρ‚Ρ€Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. ВыбираСтся Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄Π»ΠΈΠ½Π° суммарного Π²Π΅ΠΊΡ‚ΠΎΡ€Π° для ΠΏΠΎΠΏΠ°Π²ΡˆΠΈΡ… Π² ΠΎΠΊΠ½ΠΎ Ρ‚ΠΎΡ‡Π΅ΠΊ — максимальна. ВычислСнный Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Π΅ΠΊΡ‚ΠΎΡ€ нормируСтся ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ся ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ΅ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ особой Ρ‚ΠΎΡ‡ΠΊΠΈ.

ΠœΠ°Π½ΠΈΠΏΡƒΠ»ΡΡ†ΠΈΠΈ с ΠΎΠΊΠ½ΠΎΠΌ Π½ΡƒΠΆΠ½Ρ‹ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ влияния ΡˆΡƒΠΌΠΎΠ²Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ. НиТС Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 8 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΈ идСальном ΠΊΡ€Π°Π΅, ΠΈ ΠΏΡ€ΠΈ ΠΊΡ€Π°Π΅ с ΡˆΡƒΠΌΠΎΠΌ:

Рисунок 8

Как Π²ΠΈΠ΄ΠΈΠΌ, ΡˆΡƒΠΌ Π΄Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Ρ‹ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡΡ…, Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… с Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ основного Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°. ИспользованиС ΠΎΠΊΠ½Π° позволяСт ΠΎΡ‚ΡΠ΅Ρ‡ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΡˆΡƒΠΌΠΎΠ²Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ истинный Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° трСбуСтся ΠΈΠ½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ дСскрипторов ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ вращСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ SURF ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ориСнтация особых Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π΅ Ρ€Π°ΡΡΡ‡ΠΈΡ‚ываСтся.

Вакая модификация позволяСт Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Π΅ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π½Π° ±15 градусов.

ВычислСниС дСскриптора особой Ρ‚ΠΎΡ‡ΠΊΠΈ ДСскриптор ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой массив ΠΈΠ· 64 (Π² Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ вСрсии 128) чисСл, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡΠΎΠ±ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ. ДСскрипторы ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ особой Ρ‚ΠΎΡ‡ΠΊΠΈ Π½Π° ΠΎΠ±Ρ€Π°Π·Ρ†Π΅ ΠΈ Π½Π° ΡΡ†Π΅Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ. ΠœΠ΅Ρ‚ΠΎΠ΄ расчСта дСскриптора Ρ‚Π°ΠΊΠΎΠ², Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ Π·Π°Π²ΠΈΡΠΈΡ‚ ΠΎΡ‚ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°. Для вычислСния дСскриптора, Π²ΠΎΠΊΡ€ΡƒΠ³ особой Ρ‚ΠΎΡ‡ΠΊΠΈ формируСтся ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, ΠΈΠΌΠ΅ΡŽΡ‰Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€ 20s, Π³Π΄Π΅ s — ΠΌΠ°ΡΡˆΡ‚Π°Π± Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° Π½Π°ΠΉΠ΄Π΅Π½Π° особая Ρ‚ΠΎΡ‡ΠΊΠ°. Для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹, ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ 40×40 пиксСлСй. ΠšΠ²Π°Π΄Ρ€Π°Ρ‚ ориСнтируСтся вдоль ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π½ΠΎΠ³ΠΎ направлСния, вычислСнного для особой Ρ‚ΠΎΡ‡ΠΊΠΈ.

ДСскриптор считаСтся ΠΊΠ°ΠΊ описаниС Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° для 16 ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚ΠΎΠ² Π²ΠΎΠΊΡ€ΡƒΠ³ особой Ρ‚ΠΎΡ‡ΠΊΠΈ.

Рисунок 9

Π”Π°Π»Π΅Π΅, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ разбиваСтся Π½Π° 16 Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚ΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅. Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚Π΅ бСрСтся рСгулярная сСтка 5×5 ΠΈ Π΄Π»Ρ Ρ‚ΠΎΡ‡ΠΊΠΈ сСтки ищСтся Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π₯Π°Π°Ρ€Π°. Π Π°Π·ΠΌΠ΅Ρ€ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π₯Π°Π°Ρ€Π° бСрСтся Ρ€Π°Π²Π½Ρ‹ΠΌ 2s, ΠΈ Π΄Π»Ρ ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΎΠΊΡ‚Π°Π²Ρ‹ составляСт 4×4.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ расчётС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° Π₯Π°Π°Ρ€Π°, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ считаСтся Π² ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°Ρ… изобраТСния. А Π²ΠΎΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° (dX, dY) ΠΏΠΎΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΠ³ΠΎΠ», ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°. Π˜Ρ‚ΠΎΠ³ΠΎ, для вычислСния дСскриптора особой Ρ‚ΠΎΡ‡ΠΊΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ 25 Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π₯Π°Π°Ρ€Π°, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· 16 ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚ΠΎΠ². Π˜Ρ‚ΠΎΠ³ΠΎ, 400 Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π₯Π°Π°Ρ€Π°. Учитывая, Ρ‡Ρ‚ΠΎ Π½Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π½ΡƒΠΆΠ½ΠΎ 6 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ дСскриптор обойдСтся ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π² 2400 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ПослС нахоТдСния 25 Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Ρ… Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚Π°, Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ собствСнно ΠΈ ΡΠ²Π»ΡΡŽΡ‚ся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ дСскриптора: ?dX, ?|dX|, ?dY, ?|dY|

Π”Π²Π΅ ΠΈΠ· Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ просто суммарный Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ ΠΏΠΎ ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚Ρƒ, Π° Π΄Π²Π΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… — сумма ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Ρ‚ΠΎΡ‡Π΅Ρ‡Π½Ρ‹Ρ… Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ².

Π§Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚, ΠΈ 16 ΠΊΠ²Π°Π΄Ρ€Π°Π½Ρ‚ΠΎΠ², Π΄Π°ΡŽΡ‚ 64 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° дСскриптора для всСй области особой Ρ‚ΠΎΡ‡ΠΊΠΈ. ΠŸΡ€ΠΈ занСсСнии Π² ΠΌΠ°ΡΡΠΈΠ², значСния дСскрипторов Π²Π·Π²Π΅ΡˆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Π³Π°ΡƒΡΡΠΈΠ°Π½Ρƒ, с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² ΠΎΡΠΎΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΈ Ρ ΡΠΈΠ³ΠΌΠΎΠΉ 3.3s. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для большСй устойчивости дСскриптора ΠΊ ΡˆΡƒΠΌΠ°ΠΌ Π² ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΎΡΠΎΠ±ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ областях.

Плюс ΠΊ Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Ρƒ, для описания Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π½Π°ΠΊ слСда ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ ГСссС, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° sign (Dxx+Dyy). Для свСтлых Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° Ρ‚Π΅ΠΌΠ½ΠΎΠΌ Ρ„ΠΎΠ½Π΅, слСд ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½, для Ρ‚Π΅ΠΌΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ Π½Π° ΡΠ²Π΅Ρ‚Π»ΠΎΠΌ Ρ„ΠΎΠ½Π΅ — ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, SURF Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ свСтлыС ΠΈ Ρ‚Π΅ΠΌΠ½Ρ‹Π΅ пятна.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ² SURF ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π°Π±ΠΎΡ€ дСскрипторов ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эталон Π½Π° ΡΡ†Π΅Π½Π΅.

Достоинства ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

— Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΊ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°ΠΌ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

— Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅Π½ ΠΊ Ρ€Π°Π·Π½ΠΈΡ†Π΅ ΠΎΠ±Ρ‰Π΅ΠΉ яркости ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

— ΠœΠΎΠΆΠ΅Ρ‚ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 1 ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° ΡΡ†Π΅Π½Π΅ НСдостатки ΠΌΠ΅Ρ‚ΠΎΠ΄Π°:

— Π”остаточно слоТСн Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

— ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСдлСнная Ρ€Π°Π±ΠΎΡ‚Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

4. ИсслСдованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° плоскости

4.1 ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° исслСдования

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ дискрСтный Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Для количСствСнного Π°Π½Π°Π»ΠΈΠ·Π° описанных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π°Π±ΠΎΡ€Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈ этом Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡ… Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ (количСство ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²).

Для сравнСния Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… условиях Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Ρ… ΡΡ‚Ρ€ΠΎΠΈΠ»ΠΈΡΡŒ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ характСристиками:

— Π Π°Π·ΠΌΠ΅Ρ€ сцСны ΠΎΡ‚ 500×500 Π΄ΠΎ 1500×1500, Ρ€Π°Π·ΠΌΠ΅Ρ€ эталонного изобраТСния ΠΎΡ‚ 40×40 Π΄ΠΎ 500×500.

— Π Π°Π·Π½Ρ‹Π΅ ΡƒΠ³Π»Ρ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сцСны ΠΎΡ‚ 0 Π΄ΠΎ 360.

— Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ пСрСкрытия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° посторонними налоТСниями ΠΎΡ‚ 0% Π΄ΠΎ 100%

Π’ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π°Ρ… 4.2.1 — 4.2.3 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ модСлирования Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ЭкспСримСнты ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π΅ с ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ΠΎΠΌ intel i5 core, срСднСС врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ прСдставлСно Π² ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ…, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² измСряСтся Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π°Ρ… ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ количСства ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΡΡ†Π΅Π½Π΅.

4.2 Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ исслСдования

4.2.1 Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π½Π° Π²Ρ…ΠΎΠ΄ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Рисунок 10

Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΡƒΠΌΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ количСства пиксСлов.

4.2.2 Π Π°Π·Π½Ρ‹Π΅ ΡƒΠ³Π»Ρ‹ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сцСны

Рисунок 11

Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΡ‚Ρ‹Ρ… Π½Π° ΡƒΠ³ΠΎΠ» ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ΡƒΠ³ΠΎΠ» ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π° ΡƒΠΊΠ°Π·Π°Π½ Π² Π³Ρ€Π°Π΄ΡƒΡΠ°Ρ….

4.2.3 Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ пСрСкрытия ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Рисунок 12

Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² заслонСнных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ, ниТняя ось ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° заслонСн.

4.3 Анализ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… экспСримСнтов ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска максимума кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ являСтся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ быстрым ΠΈΠ· ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ². Но, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, качСство Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сильно зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ насколько сильно эталон искаТСн Π½Π° ΡΡ†Π΅Π½Π΅, Ρ‚Π°ΠΊ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠΈ изобраТСния Π½Π° ΡΡ†Π΅Π½Π΅ большС Ρ‡Π΅ΠΌ Π½Π° 10 ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π·ΠΊΠΎ ΠΏΠ°Π΄Π°Π΅Ρ‚. Напротив ΠΌΠ΅Ρ‚ΠΎΠ΄ SURF ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»Π΅Π½, Π½ΠΎ Π΄Π°Π΅Ρ‚ достаточно Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π°ΠΌ.

5. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ рСализация ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях

Автором Π±Ρ‹Π»Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° программная рСализация Π΄Π²ΡƒΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… прилоТСниях. Π’ Π½Π°ΡΡ‚оящСС врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΡ‚Ρ‹ находится Π½Π° ΡΡ‚Π°Π΄ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° поиска максимума кросскоррСляционной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

— ΠŸΠΎΡΠ»Π΅ запуска прилоТСния Π½Π°ΠΌ прСдлагаСтся ввСсти ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ сцСны ΠΈ ΠΊ ΡΡ‚Π°Π»ΠΎΠ½Π½ΠΎΠΌΡƒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°

Рисунок 13

— ΠŸΠΎΡΠ»Π΅ Π½Π΅ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Π²Π° ΠΎΠΊΠ½Π°

Рисунок 14

Π’ ΠΎΠΊΠ½Π΅ «Etalonobject» отобраТаСтся Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ΅ эталонноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π² ΠΎΠΊΠ½Π΅ «Findobject» отобраТаСтся ΡƒΠΆΠ΅ обработанная сцСна с ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π° Π½Π΅ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SURF.

ПослС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ прилоТСния Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Run» откроСтся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» эталон ΠΈ Ρ„Π°ΠΉΠ» сцСну, послС Π½Π΅ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этих Ρ„Π°ΠΉΠ»ΠΎΠ².

Рисунок 15

ΠšΡ€ΡƒΠ³Π°ΠΌΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ особыС Ρ‚ΠΎΡ‡ΠΊΠΈ, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° SURF.

Π‘Π»Π΅Π²Π° отобраТаСтся эталонноС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ с Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΌΠΈ особыми Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, справа ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ особыС Ρ‚ΠΎΡ‡ΠΊΠΈ эталонного изобраТСния ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ со ΡΡ†Π΅Π½ΠΎΠΉ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

По Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄ Как ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ исслСдованиС, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свои прСимущСства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ, ΠΊΠ°ΠΊ слСдствиС всС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ свою ΠΎΠ±Π»Π°ΡΡ‚ΡŒ примСнСния.

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ Π±Ρ‹Π»ΠΈ достигнуты ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»ΠΈ:

1. ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ… Π² Π΄Π²ΡƒΡ…ΠΌΠ΅Ρ€Π½ΠΎΠΌ пространствС. ΠŸΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΡ… Π΄ΠΎΡΡ‚оинства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΠΊΠΈ.

2. ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ способы эффСктивной практичСской Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ….

3. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для поиска Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… максимумов, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ.

4. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ исслСдованиС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях.

5. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ нСсколько Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для поиска ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Ρ… изобраТСниях.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ освящаСт Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π²ΡΠ΅ аспСкты, связанныС с Ρ‚Π°ΠΊΠΎΠΉ ΠΎΠ±ΡˆΠΈΡ€Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ исслСдований, ΠΊΠ°ΠΊ поиск ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡΡ…. НС Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ устойчивости ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΊ Π°Ρ„Ρ„ΠΈΠ½Π½Ρ‹ΠΌ прСобразованиям, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ качСства распознания Π½Π° Π·Π°ΡˆΡƒΠΌΠ»Π΅Π½Π½Ρ‹Ρ… изобраТСниях, поиск ΠΈ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΡΡ‚ранствС ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, каТдая ΠΈΠ· ΡΡ‚ΠΈΡ… Ρ‚Π΅ΠΌ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ изучСния.

Бписок ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… источников

1. Π”ΡƒΠ΄Π° Π ., Π₯Π°Ρ€Ρ‚ П. РаспознаваниС ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΠ· сцСн. тСкст] - М.: ΠœΠΈΡ€, 1976. — 511 с.

2. Π’Π΅Ρ€Ρ…Π°Π³Π΅Π½ К., Π”Π΅ΠΉΠ½ Π ., Π“Ρ€ΡƒΠ½ Π€. РаспознаваниС ΠΎΠ±Ρ€Π°Π·ΠΎΠ²: БостояниС ΠΈ ΠΏΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Ρ‹. тСкст] - М.: Π Π°Π΄ΠΈΠΎ ΠΈ ΡΠ²ΡΠ·ΡŒ, 1985. — 104 с.

3. ΠŸΠ΅Ρ€Π΅ΡΠ°Π΄Π° Π’. П. АвтоматичСскоС распознаваниС ΠΎΠ±Ρ€Π°Π·ΠΎΠ². Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠΊΠ΅, выпуск 392. тСкст] - 1970. — Π‘. 92.

4. Π’Π°ΠΏΠ½ΠΈΠΊ Π’. Н., ЧСрвонСнкис А. Π―. — Π’Сория распознавания ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ ΡΡ‚охастичСскиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ обучСния. тСкст] - M.: Наука, 1974 Π³. — 416 с.

5.ΠœΠ΅Ρ€ΠΊΠΎΠ² А. Π‘. — Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ².

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ъ ΡΡ‚атистичСского обучСния. тСкст] - М.: Π•Π΄ΠΈΡ‚ΠΎΡ€ΠΈΠ°Π» Π£Π Π‘Π‘, 2011 Π³. — 256 с.

6.ΠŸΠΎΡ‚Π°ΠΏΠΎΠ² А. Π‘. — Π Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠ΅ восприятиС. тСкст] - М.: ΠŸΠΎΠ»ΠΈΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°, 2007 Π³. — 552 с.

7. Π¨Π°ΠΏΠΈΡ€ΠΎ Π›., Π‘Ρ‚ΠΎΠΊΠΌΠ°Π½ Π”ΠΆ. — ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅. тСкст] - М.: Π‘ΠΈΠ½ΠΎΠΌ. Лаборатория Π·Π½Π°Π½ΠΈΠΉ, 2006 Π³. — 752 с.

8. Дэвид Ѐорсайт, Π–Π°Π½ Понс ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠ΅ Π·Ρ€Π΅Π½ΠΈΠ΅. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. тСкст] - М.: Π’ΠΈΠ»ΡŒΡΠΌΡ, 2004 Π³. — 928 с.

9. Алпатов Π‘. А., Бабаян П. Π’., Π‘Π°Π»Π°ΡˆΠΎΠ² О. Π•., Π‘Ρ‚Π΅ΠΏΠ°ΡˆΠΊΠΈΠ½ А. И. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ автоматичСского обнаруТСния ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅. тСкст] - М.: Π Π°Π΄ΠΈΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°, 2008 Π³. — 176 с.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ