Хистограмата като оценка на качеството на аерофотоснимки

Хистограмата е универсален метод за статистическа оценка на множество параметри. В статията конкретно се разглежда нейното приложение при обработката на аерофотоснимки.

    Аерофотоснимките са основа за картиране във фотограметрията. Всяко нещо, когато е направено не както трябва още в основата си, впоследствие става невъзможно неговото качествено развитие. Хистограмата като понятие присъства много често във фотографските изображения, всеки дигитален фотоапарат предлага такава функция. Почти никой не се опитва да разбере характерните криви линии и за качеството на снимката се съди субективно, „на око“. Докато при обикновените фотоснимки това не е фатално, при фотограметричните изображения с висока резолюция, каквито са аерофотоснимките и космическите снимки, трябва да има друг критерии за оценка. Преди да обясня смисълът на хистограмата, ще започна с това какво представлява растерната графика и как е представена математически.

     Пикселът е най-малката градивна частица на дигиталното растерно изображение. Неговият цвят се определя от степента, в която присъства всеки един от трите основни цвята – червено, зелено и синьо (Red, Green, Blue). Правоъгълната матрица с размер MxN пиксела, представлява растерно изображение, пример за което е даден на следващата графика.

Raster_Frame

Част от растер, на който се виждат отделните пиксели

    Съвкупността от пиксели ние възприемаме като едно цяло изображение, което формира дигитално копие на заснетия обект. Нека обаче да разгледаме в какви граници могат да се променят стойностите за цветовете на един пиксел.

RGB_Value

RGB стойности за всеки пиксел

    За всеки един цвят Red, Green или Blue стойностите за неговото количество са крайни и варират между 0 и 255. Например най-светлия пиксел от горната схема има RGB формула R=240,G=239,B=248. Понякога тези стойности се дават в проценти или за същият пиксел може да се запише R=94.12%, G=93.73%,B=97.25%. Общото количество на Red, Green и Blue цветовете в един пиксел, определят неговата яркост. Формулата на пиксела в горния десен ъгъл е R=100,G=126,B=104 и той е значително по-тъмен от съседния. Следвайки тази логика, идеално белият пиксел има формула R=255,G=255,B=255, а идеално черният се записва като R=0,G=0,B=0.

    Забележете, че отделните цветове участват във формирането на яркостта с различни тежести. Физиологичните особености на човешкото око определят най-висока чувствителност към зеления цвят, след това към червения и най-слабо възприемаме синия цвят, затова във формулата на яркостта коефициентите пред R,G и B са различни.

Lumi_Eq

    Чрез различни софтуерни филтри, параметрите на аерофотоснимката могат да се променят. В резултат на това ние възприемаме дадено изображение като контрастно или с недостатъчна осветеност. Гледайки двата варианта на тестовото изображение, почти всеки човек, запитан коя снимка е по-добра, ще посочи варианта от дясно. По-наситените цветове и контраст правят снимката по-привлекателна за окото и така попадаме в капана на субективната човешка преценка.

Test_Original

 Test_AutoCorrection

Оригинално и автоматично коригирано изображение

    В крайна сметка, ние като инженери не участваме в конкурс за красота, а се борим за постигане на качествена радиометрия на аерофотоснимките, което ще ни позволят максимално да извлечем полезната информация от дигиталното копие на обекта. Поради тази причина, ще разгледам подробно хистограмата като оценка на качеството и се надявам в края на статията да се убедите, че лявата снимка на горната графика в много по-добра за работа от автоматично коригираната снимка.

    Тестовото изображение е с размер M=638 и N=425 пиксела, като директно можем да запишем 638х425 или общо 271150 пиксела. Ако проверим RGB формулата на всеки един от тези 271150 пиксела, ще получим следното:

Histogram

Ниво 0-255 Брой пиксели
Level Red Green Blue
0 0 0 0
1 0 0 0
2 0 0 0
3 1 0 0
4 0 0 0
5 3 0 0
 …6-94…
95 3321 985 5778
96 3411 999 5939
97 3568 1068 6158
98 3697 1127 6066
99 3908 1148 6150
 …100-247…  …
248 0 2 0
249 0 1 0
250 0 0 0
251 0 1 0
252 0 0 0
253 0 0 0
254 0 0 0
255 0 0 0

Таблица и графика на разпределението на пикселите по брой за всяка RGB стойност

    Данните в таблицата означават, че имаме само един пиксел със стойност R=3. Ако погледнем за ниво 95 ще открием, че в цялото изображение имаме 3321 пиксела с R=95, 985 пиксела с G=95 и 5778 пиксела с B=95. Когато данните от таблицата бъдат представени графично, получаваме хистограма на изображението, като по хоризонталната ос са нанесени нивата на съответните цветове от 0 до 255, а по вертикалната ос са означени броят на пикселите, който имат тази стойност на Red, Green или Blue цвета. Съвместната обработка на трите цвята ни дава представа за яркостта на пикселите, затова на следващите графики най-горната хистограма (с черен цвят) представлява статистическа оценка на яркостта на изображението, изчислена по дадената формула.

    По какъв начин можем да оценим качеството на една аерофотоснимка, базирайки се на данните от хистограмата? В общия случай, разпределението на броят на пикселите трябва да се подчинява на закона за нормалното разпределение на случайна величина.

Norm_Dist

Нормално разпределение на случайна величина

    В зависимост от заснетия обект, формата на хистограмата може да варира в широки граници, но за да стане ясно какво трябва да следим при аерофотоснимките, ще дам отделни примери. Като начало нека да разгледаме оригиналното изображение с хистограмите на яркостта, червения, зеления и синия цвят.

Test_OriginalTest_Original.jpg-Hist

Оригинална аерофотоснимка с правилна хистограма

    Въпреки, че се виждат повече от един връх на хистограмата, в това няма нищо нередно. Графиката в лявата и дясната си част е достатъчно далеч от стойностите 0 и 255 и като цяло нито е прекалено заострена, нито заоблена. Това, че нямаме пиксели със стойности 0-15 и 240-255 означава, че в нашето изображение липсват напълно черни и бели пиксели.

Test_Brig_LowTest_Brig_Low.jpg-Hist

Понижена яркост – хистограмата клони на ляво към стойност 0

    В следващия случай нека намалим яркостта на изображението до определена степен. Математически това намаляване се изразява в по-ниски RGB стойности на пикселите. На графиката се вижда, че голяма част от пикселите са с яркост нула, т.е. абсолютно черни. Ако трябва да съм точен, данните от таблицата сочат, че имаме 13826 пиксела с RGB стойности около нула. С други думи тези пиксели вече не носят никаква информация за заснетия обект и можете да забележите, че за разлика от оригиналната снимка, при тази със понижена яркост, реката и пътя в сянка изобщо не се виждат. Обработено и предадено по този начин изображение не подлежи на никакви софтуерни филтри и фотограметристите, които се опитват да картират реката и пътя, няма да успеят в местата, където дърветата хвърлят сянка.

Test_Brig_HiTest_Brig_Hi.jpg-Hist

Повишена яркост – хистограмата клони на дясно към стойност 255

    При повишаване на яркостта ситуацията е аналогична, но с обратен знак. Забелязва се, че хистограмата е силно изтеглена в дясно, където са по-високите стойности на RGB. Тук имаме отново загуба на информация, но не в сенките, а в светлите места като бетонни площадки, насипана скална маса, пясък и т.н. След увеличаване на яркостта, десетки хиляди пиксели са придобили RGB стойности 240-255, т.е. те са станали почти или абсолютно бели. Отново имаме ценна информация за обекта, която завинаги е загубена.

Test_Cont_LowTest_Cont_Low.jpg-Hist

Понижен контраст – хистограмата е с остър връх

    Когато контрастът се понижи, математически това се изразява във все по-голямо стесняване на диапазона, в който варират RGB стойностите на пикселите. Снимката като че ли „посивява“ и хистограмата става по-остра, групирайки в центъра на абсцисата пиксели със стойности близки до 127. По този начин има опасност да се загубят по-малки детайли от изображението вследствие на занижения контраст.

Test_Cont_HiTest_Cont_Hi.jpg-Hist

Повишен контраст – хистограмата е заоблена и разтеглена в двата края

    При обратния вариант, когато контрастът се повишава, хистограмата се разтегля към двата края и се заоблят върховете. Достатъчно е да сравните средните стойности на RGB (Mean) за всеки един от случаите, за да се убедите в това. Тук вече се появяват симптомите на първите два случая, но обединени в едно – имаме загуба на информация поради наличието на абсолютно бели и абсолютно черни пиксели, което е пагубно за бъдещата работа с изображението.

Test_AutoCorrectionTest_AutoCorrection.jpg-Hist

Автоматична корекция по яркост, контраст и цветове – хистограмата е разтеглена в двата края

    Много софтуерни продукти предлагат автоматична корекция по контраст, яркост и цветове. След подобна обработка снимките придобиват по-свеж вид и операторът оставя изображението така, както го възприема за добро чисто субективно. Обаче ако погледнем хистограмата, ще стане ясно, че в тази аерофотоснимка отново има пиксели с критично ниски и критично високи RGB стойности, близки до 0 и 255. Както вече споменах, оттук нататък ние нямаме никакъв шанс с какъвто и да било софтуер да „върнем“ загубената информация, която са носили тези пиксели за обекта.

    Забележете, че ако се работи с оригиналният вид на изображението, фотограметристът, който картира обекта, може да променя яркостта, контраста и цветовете на снимката само на своят монитор, без коригираната снимка да се съхранява. По този начин имаме запазване на качествен оригинал и персонална настройка според специфичните особености на възприятие за всеки човек. На практика обаче се получава, че всеки променя настройките на изображението както си иска и в крайна сметка потребителят получава ортофотоплан с голяма загуба на информация. Например при автоматично коригираната снимка имаме 12126 пиксела с яркост със стойности 0-15 и 240-255 от общо 271150 пиксела, което прави 4.47% загуба на информация

    Много или малко са тези 4.47% загуба? След георефериране размерът на един пиксел върху терена има стойност 0.10 м.. Площта на тестовата аерофотоснимка обхваща 2711.5 м2 и 4.47% представляват 121.2 м2 загуба, което не е никак малко.

    Сами разбирате, че всяко изображение е строго специфично според заснетия обект, техниката, с която е снимано или сканирано и много други фактори, затова не може да се каже, че тази или онази хистограма е правилна. Спазвайки законът за нормално разпределение и вниквайки в същността на хистограмата, ние имаме инструмент, с който обективно можем да оценим качеството на една аерофотоснимка преди да стигнем етап на картиране.

Методи за калибриране на растерни изображение

Калибрирането на растерни изображения винаги е стояло на дневен ред при много от задачите, решавани от геодезисти, картографи и GIS специалисти. Повечето инженери използват специализираният софтуер наготово, без въобще да осмислят как работят различните методи и което е по-важно, кога да използват съответният метод на калибриране. Без да изпадам в теоретични подробности, в тази статия ще дам няколко примера под формата на тест, който успях да направя с цел изясняване на ситуацията. През годините съм калибрирал хиляди чертежи, като малко от тях са били в добро състояние и винаги съм се питал кога да използвам бикубична трансформация и кога мога да си позволя не повече от афинна.

Още преди да стигне до скенера, чертежът, който искаме да се калибрира е натоварен с деформации, които могат да бъдат следните:

  • Грешка от изчертаване на елементите – инженерите преди нас са били значително по-старателни от днешните, но няма безгрешни хора, затова не са редки случаите на объркани координатни кръстове. Оттук нататък каквото и да се чертае, то носи в себе си грешката на координатната мрежа.
  • Деформация в следствие на промени в влажността и температурата през годините на съхранение – през дългите години на съхранение многократно се променят влажността и температурата, което влияе на чертожните материали като картон, инженерно платно, мелинекс и други.
  • Механични деформации – в повечето случаи чертежите не се съхраняват по надлежния ред и като добавим небрежното отношение при работа с тях, се стига до механичните деформации.
  • „Артефакти“ – с това име наричам всички петна по чертежите от мазни банички, разлято кафе, остатъци от червило или лак за нокти. Колкото и добре да са изчертани координатните кръстове, когато върху някои от тях има парче размазана кал, той става неизползваем.
  • Грешка от сканиране – накрая се добавя грешката от сканиране, която неминуемо всяка машина добавя към растерното изображение поради приплъзване на ролките или проблемна работа на сканиращата глава.

Като се има предвид, че възрастта на голяма част от чертежите, с които работим е 50, 60 и дори 100 години ясно се очертава колко много деформации могат да бъдат събрани в един единствен регулационен план. Нашата цел е по такъв начин да калибрираме изображението, че  максимално точно да възпроизведем дигитално копие на оригиналният чертеж, но преди калибрирането е сканирането.

Сканирането на един чертеж трябва да се прави с професионални барабанни или плоски скенери, като е много важно да се спазват следните оптимални параметри:

  • Формат на файла – TIFF този формат е задължителен, затова НЕ използвайте JPEG за чертежи. Сам по себе си JPEG не е формат, а вид компресия на TIFF-а, но той е предназначен за снимки и загубата на качество е осезаема още под 96% качество. Заблуждавате се, когато мислите, че с JPEG се работи по-лесно поради малкият размер. Ако един и същи чертеж в TIF формат е 500 MB, a в JPEG формат неговият размер е 42 MB, на компютърът ще му трябва повече време и ще върши по-тежка работа да декомпресира JPEG-а, вместо директно да работи с TIFF.
  • Компресия на файла – LZW– При „чисти“ чертежи този вид компресия намалява чувствително размера на файла без забележима разлика в качеството на изображението.
  • Разделителна способност – 400-600 dpiвисоката резолюция стои в основата на качественото калибриране. Чертежи, сканирани под 400 dpi още в зародиш са загубили ценна информация и затова трябва да бъдат сканирани отново. Над 600 dpi също не е оправдано да се сканира, защото файловете стават доста по-големи, а реално по-висока резолюция губи смисъл за чертежи, направени на ръка или писалков плотер.
  • Дълбочина на цвета – 256 цвята, (8 битов цвят)старите чертежи съдържат не повече от 10-15 цвята, затова 256 цветните изображения са напълно достатъчни за да се види всичко. Кажете ми какъв е смисъла от 24 битов RGB цвят, както се сканират снимки, за чертеж с 10-15 цвята? Въпреки това масово при мен идват такива файлове с големина 1-2 GB, които се чудя как да обръщам до нормалните 300-400 MB TIFF-ве.

И така, вече имаме чертеж, сканиран съобразно посочените горе параметри. Координатната мрежа е изчертана и ако опитаме калибриране и анализиране на отклоненията в координатите на всеки кръст преди и след калибрирането, в идеалният случай трябва да получим нулеви разлики. Ако представим тези разлики в една повърхнина, генерирана от координатите X,Y на всяка точка (координатен кръст) и нейното отклонение като Z координата, в идеалният случай ще получим равнина. Каква ситуация имаме на практика можете да видите на следващата графика:

Повърхнината на грешките от схемата е реален пример за ситуацията след калибриране на регулационен план в мащаб М 1:1000 с размери 1153 м. на 529 м. от терена. Преди калибрирането грешките са много по-големи и разпределени неравномерно.

Изследването беше извършено върху тестова координатна мрежа, изчертана в AutoCAD, разпечатана на плотер HP DesignJet 800 и сканирана на професионален скенер Mustek Pro3200 A3. Тук можете да видите само схематично представяне на тестовата мрежа с цел изясняване на отделните работни зони.

Реално за калибриране са използвани само кръстовете, които се намират в Calibrate Area и са означени като Calibrate Cross. Останалите кръстове са използвани само за да се види ефекта, който оказва даденият метод на калибриране когато имаме случай на екстраполация в различни варианти.

Трансформационните модели могат да бъдат няколко вида в зависимост от броя на коефициентите и степенните показатели. В следващите редове са дадени пет от най-често използваните модели, записани със съответните уравнения.

Helmert modelизотропен линеен модел, необходими са минимум 2 вектора

Affine modelанизотропен линеен модел, необходими са минимум 3 вектора

Bilinear modelнеобходими са минимум 4 вектора

Biquadratic modelнеобходими са минимум 9 вектора

Bicubic modelнеобходими са минимум 16 вектора

Параметрите aij се определят по МНМК. Всеки корекционен вектор има за начало координатен кръст от растера и за край място от векторната графика, където трябва да се премести растера.

По този начин чрез мрежа от корекционни вектори се получават достатъчно данни за определяне на aij коефициентите за съответния трансформационен модел. Проблемите се появяват когато поради една или друга причина не е възможно да се ползват всички координатни кръстове в даден чертеж, затова тестовата графика е разделена на такива зони.

На следващите графики са постигнатите резултати за всеки един от методите, като грешките са представен във вид на повърхнина, която не се нуждае кой знае от какъв  коментар. Въпреки това ще кажа по няколко думи за всеки от методите.

Helmert – хелмертовата трансформация е най-елементарната и предполага транслация, ротация и еднакъв мащаб, Mx=My. Както се вижда от повърхнината, тя дава доста сериозни отклонения в режим на екстраполация и трябва да се избягва.

Affine – при афинната трансформация имаме анизотропен линеен модел, при който освен транслация и ротация, мащабите се различават по двете оси, Mx≠My. Това е най-често използваната трансформация по две причини. Първата причина е факта, че дълго време старите дигитайзери работеха с този вид трансформация и по инерция се приема валиден и за векторизиране. Втората причина е непознаването на трансформационните модели от по-висока степен и оттук нежелание за тяхното използване. На повърхнината се вижда, че афинната трансформация се справя по-добре с екстраполацията, но в един от ъглите има недопустимо високи разлики. Въпреки това, при много лоши чертежи този модел може да се окаже единствено подходящ.

Bilinear – билинейната трансформация се използва за по-сложно деформирани изображения, но и тя както другите модели не се справя добре с екстраполацията. Въобще моделите от по-висока степен не са подходящи за чертежи, при които координатната мрежа не обхваща от всякъде  изображението. Можете да забележите на повърхнината, че там, където се получава трапец, реално имаме интерполация+екстраполация и билинейният модел се справя по-добре от хелмерт и афинна.

Biquadratic – биквадратичният модел, както и останалите два нелинейни модела, работят много добре когато имаме равномерно разположена в обекта координатна мрежа. При екстраполация обаче се получават отново високи отклонения и затова трябва внимателно да се прилага.

Bicubic – бикубичният модели изисква минимум 16 вектора, като неговите резултати са най-добри при равномерно разположена мрежа вектори без липсващи координатни кръстове. Това е моделът който винаги трябва да се предпочита при добри чертежи с ясно и правилно начертани координатни кръстове. Когато имаме обаче случай на екстраполация, тогава деформациите са сериозни и трябва много внимателно да се ползва бикубична трансформация.

Bicubic+1 point – ако към бикубичният модел добавим само една точка в полето на екстраполация, общата грешка се намалява значително и можем да разчитаме на този модел. Въпреки това, в северозападната част на повърхнината отново имаме големи отклонения заради високата степен на модела. Колкото повече се отдалечаваме от равномерно разположената трансформационна мрежа, толкова по-силно са изразени тези деформации.

В заключение мога да кажа, че няма строго правилно, по което можем да работим. Всеки един чертеж е уникален и носи в себе си различен тип деформации. Нашата задачата е да определим по какъв начин да въздействаме на растерното изображение така, че да постигнем след векторизирането графика, която е максимално близо до оригинала. С такава цел се прилагат споменатите трансформационни модели и само тяхното познаване ще ни помогне да използваме правилно тези инструменти.

 

Януари 2012 г