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

Калибрирането на растерни изображения винаги е стояло на дневен ред при много от задачите, решавани от геодезисти, картографи и 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 г   

Вашият коментар