Tasvir fayli - Image Recognition

|
Image Recognition
|
bet | 86/182 | Sana | 19.05.2024 | Hajmi | 5,69 Mb. | | #244351 |
Bog'liq Python sun\'iy intellekt texnologiyasi Dasrlik 2024Tasvir fayli
Har qanday tasvirni qayta ishlashdan oldin, rasm fayllari qanday ishlashini tushunishimiz kerak. Xususan, biz ushbu fayllar tasvirlarni tasvirlash uchun bayt ma’lumotlari va piksellardan qanday foydalanishini muhokama qilamiz.
Agar siz ilgari rasm faylining xususiyatlarini ko‘rib chiqqan bo‘lsangiz, u tasvirning o‘lchamlarini, ya’ni tasvirning balandligi va kengligini ko‘rsatadi. Balandlik va kenglik piksellar soniga asoslanadi. Misol uchun, agar rasmning o‘lchamlari 400x300 (kenglik x balandlik) bo‘lsa, unda tasvirdagi piksellarning umumiy soni 120000 ga teng.
7.1.1-rasm. Futbol to‘pi tasviri
Futbol to‘pi tasvirining o‘lchamlari 1710x1980 (kengligi 1710px, balandligi 1980px), tennis to‘pi tasviri esa 1024x1024 (kengligi 1024px, balandligi 1024px).
Funksiya tensorflow.io.read_file kerakli argument sifatida fayl nomini oladi va fayl mazmunini tensorflow.string turi bilan tensor sifatida qaytaradi. Kirish fayli rasm bo‘lsa, tensorflow.io.read_filening chiqishi rasm faylining xom bayt ma’lumotlari bo‘ladi. Xom bayt chiqishi tasvirning piksel ma’lumotlarini ifodalasa ham, uni bevosita ishlatib bo‘lmaydi. Keling, avvalo futbol to‘pi tasviridan foydalangan holda Python-da amalga oshirishni ko‘rib chiqaylik.
import tensorflow
values = tf.io.read_file('soccer_ball.jpg’)
Piksel aynan nima?
Piksel aslida tasvirdagi ma’lum bir soya, rang va/yoki shaffoflikka ega nuqtadir. Biz odatda pikselni bitta butun yoki bir nechta tamsayı sifatida ifodalaymiz. Piksellar tasvirni talqin qilish asosida o‘ziga xos shaklni oladi, bu odatda quyidagilardan biridir:
Kulrang shkala: Tasvirni oq va qora ranglar sifatida ko‘rish. Har bir piksel 0 dan 255 gacha bo‘lgan butun son bo‘lib, 0 butunlay qora va 255 to‘liq oq rangga ega.
RGB: Rangli tasvirlar uchun standart talqin. Har bir piksel 0 dan 255 gacha bo‘lgan 3 ta tamsayıdan iborat bo‘lib, bunda butun sonlar piksel uchun mos ravishda qizil, yashil va ko‘k rang intensivligini ifodalaydi.
RGBA: qo‘shilgan alfa maydoni bilan RGB kengaytmasi. Alfa maydoni tasvirning shaffofligini ifodalaydi va bu laboratoriyada biz pikselning alfa qiymatini 0 dan 255 gacha butun son sifatida ifodalaymiz, 0 to‘liq shaffof va 255 to‘liq shaffof emas.
Tasvirni o‘zimiz xohlagancha izohlashni tanlashimiz mumkin, lekin odatda bitta talqin optimal bo‘ladi. Misol uchun, biz RGB piksel qiymatlari bilan qora va oq tasvirni talqin qilishimiz mumkin, ammo uni kulrang rangdagi tasvir sifatida ko‘rish samaraliroq (3x kamroq butun sonlar ishlatilgan). Boshqa tomondan, rangli tasvirni kulrang piksellar yordamida talqin qilish oqilona bo‘lmaydi, chunki piksellar haqiqiy ranglarning birortasini ham ushlay olmaydi.
Rasm turi
Rasmni qanday yuklashni o‘rganganingizdan so‘ng, TensorFlow yordamida tasvir ma’lumotlarini piksel ma’lumotlariga dekodlash vaqti keldi.
Biz foydalanadigan dekodlash funktsiyasi tasvir formatiga bog’liq. Umumiy dekodlash (masalan, har qanday tasvir formatini dekodlash) uchun biz tensorflow.image.decode_imagedan foydalanamiz, lekin agar kiritilgan rasm JPEG boʻlsa, biz tensorflow.image.decode_jpegdan foydalanamiz.
|
| |