Мэдрэлийн сүлжээ гэх мэт өгөгдөлд суурилсан алгоритмууд дэлхийг шуурганд автуулсан. Тэдний хөгжил нь хямд, хүчирхэг тоног төхөөрөмж, асар их хэмжээний өгөгдөл зэрэг хэд хэдэн шалтгаантай холбоотой юм. Мэдрэлийн сүлжээнүүд нь дүрсийг таних, байгалийн хэлийг ойлгох гэх мэт "танин мэдэхүйн" ажлуудтай холбоотой бүх зүйлийн тэргүүн эгнээнд явж байна. Гэхдээ тэд ийм даалгавараар хязгаарлагдах ёсгүй. Энэ нийтлэлд үлдэгдэл сурах аргыг ашиглан мэдрэлийн сүлжээг ашиглан зургийг хэрхэн шахах тухай өгүүлнэ. Нийтлэлд үзүүлсэн арга нь стандарт кодлогчоос илүү хурдан бөгөөд илүү дээр юм. Схемүүд, тэгшитгэлүүд, мэдээжийн хэрэг, зүсэлтийн доорх тест бүхий хүснэгт.
Энэ нийтлэл дээр үндэслэсэн болно
Зургийн шахалт гэж юу вэ, энэ нь хэрхэн ажилладаг вэ?
Зургийг шахах гэдэг нь зургийг бага зай эзэлдэг болгож хувиргах үйл явц юм. Зүгээр л зургийг хадгалахад маш их зай эзэлдэг тул анхны зургийн хэмжээг багасгах зорилготой JPEG, PNG гэх мэт кодлогч байдаг.
Таны мэдэж байгаагаар зураг шахах хоёр төрөл байдаг: алдагдалгүй и алдагдалтай. Нэрнээс нь харахад алдагдалгүй шахалт нь зургийн анхны өгөгдлийг хадгалж чаддаг бол алдагдалтай шахалт нь шахалтын явцад зарим өгөгдлийг алддаг. жишээлбэл, JPG нь алдагдалтай алгоритмууд [ойролцоогоор. орчуулга. - үндсэндээ алдагдалгүй JPEG-ийн талаар мартаж болохгүй], PNG бол алдагдалгүй алгоритм юм.
Алдагдалгүй ба алдагдалтай шахалтын харьцуулалт
Баруун талд байгаа зурган дээр маш олон бөглөрсөн олдвор байгааг анзаараарай. Энэ бол алдагдсан мэдээлэл. Ойролцоох өнгөний ойролцоох пикселүүдийг орон зай хэмнэхийн тулд нэг талбар болгон шахдаг боловч бодит пикселийн талаарх мэдээлэл алга болдог. Мэдээжийн хэрэг, JPEG, PNG гэх мэт кодлогчдод ашигладаг алгоритмууд нь илүү төвөгтэй боловч энэ нь алдагдалтай шахалтын сайн жишээ юм. Алдагдалгүй шахалт нь сайн боловч алдагдалгүй шахагдсан файлууд нь дискний зайг их хэмжээгээр эзэлдэг. Маш их мэдээлэл алдалгүйгээр зургийг шахах илүү сайн аргууд байдаг ч тэдгээр нь нэлээд удаан бөгөөд олонхи нь давтагдах аргыг ашигладаг. Энэ нь тэдгээрийг олон CPU эсвэл GPU цөм дээр зэрэгцүүлэн ажиллуулах боломжгүй гэсэн үг юм. Энэ хязгаарлалт нь тэдгээрийг өдөр тутмын хэрэглээнд бүрэн ашиглах боломжгүй болгодог.
Convolutional Neural Network оролт
Хэрэв ямар нэг зүйлийг тооцоолох шаардлагатай бөгөөд тооцоолол нь ойролцоо байж болох юм бол нэмнэ үү
архитектур
Зохиогчид давхар сүлжээг санал болгосон. Эхний сүлжээ нь дүрсийг оролт болгон авч, авсаархан дүрслэл (ComCNN) үүсгэдэг. Дараа нь энэ сүлжээний гаралтыг стандарт кодлогч (жишээ нь JPEG) боловсруулдаг. Кодек боловсруулсны дараа дүрсийг хоёр дахь сүлжээнд дамжуулдаг бөгөөд энэ нь кодлогчоос авсан зургийг "засдаг" бөгөөд анхны зургийг буцааж өгөхийг оролддог. Зохиогчид энэ сүлжээг Reconstructive CNN (RecCNN) гэж нэрлэсэн. GAN-уудын нэгэн адил хоёр сүлжээг давтах хэлбэрээр сургадаг.
ComCNN Компакт дүрслэлийг стандарт кодлогч руу дамжуулдаг
RecCNN. ComCNN-ийн гаралтыг томруулж, RecCNN-д нийлүүлдэг бөгөөд энэ нь үлдсэн хэсгийг сурахыг оролдох болно
Кодекийн гаралтыг томруулж, дараа нь RecCNN руу дамжуулна. RecCNN нь зургийг эх хувилбартай нь аль болох ойртуулахыг хичээх болно.
Төгсгөлд нь дүрс шахах хүрээ. Co(.) нь зураг шахах алгоритм юм. Зохиогчид JPEG, JPEG2000 болон BPG ашигласан
Үлдэгдэл гэж юу вэ?
Үлдсэн хэсгийг кодлогчоор тайлж буй зургийг "сайжруулах" дараах боловсруулалтын алхам гэж үзэж болно. Мэдрэлийн сүлжээ нь дэлхийн талаар маш их "мэдээлэл" эзэмшсэн тул юу засах талаар танин мэдэхүйн шийдвэр гаргах боломжтой. Энэ санаа дээр үндэслэсэн
Алдагдлын функцууд
Бидэнд хоёр мэдрэлийн сүлжээ байгаа учраас алдагдлын хоёр функцийг ашигладаг. Эдгээрийн эхнийх нь ComCNN нь L1 гэсэн шошготой бөгөөд дараах байдлаар тодорхойлогддог.
ComCNN-д зориулсан алдагдлын функц
Тайлбар
Энэ тэгшитгэл нь төвөгтэй мэт санагдаж болох ч энэ нь үнэндээ стандарт юм (язгуурын квадрат алдаа) МХБ. ||² гэдэг нь тэдгээрийн хавсаргасан векторын нормыг хэлнэ.
Тэгшитгэл 1.1
Cr нь ComCNN-ийн гаралтыг илэрхийлнэ. θ нь ComCNN параметрүүдийн суралцах чадварыг илэрхийлдэг бол XK нь оролтын дүрс юм
Тэгшитгэл 1.2
Re()
RecCNN гэсэн үгийн товчлол. Энэ тэгшитгэл нь RecCNN-д 1.1-р тэгшитгэлийн утгыг энгийнээр дамжуулдаг. θ нь RecCNN-ийн сургах боломжтой параметрүүдийг илэрхийлдэг (дээд талд байгаа малгай нь параметрүүд тогтмол байна гэсэн үг).
Зөн совингийн тодорхойлолт
Тэгшитгэл 1.0 нь ComCNN-ийн жинг өөрчлөхөд хүргэдэг бөгөөд ингэснээр RecCNN-ээр дахин үүсгэх үед эцсийн дүрс нь оролтын зурагтай аль болох адилхан харагдах болно. Хоёр дахь RecCNN алдагдлын функцийг дараах байдлаар тодорхойлно.
Тэгшитгэл 2.0
Тайлбар
Дахин хэлэхэд функц нь төвөгтэй мэт санагдаж болох ч энэ нь ихэвчлэн мэдрэлийн сүлжээний алдагдлын стандарт функц (MSE) юм.
Тэгшитгэл 2.1
Co()
кодек гаралт, дээр нь малгайтай x нь ComCNN гаралт гэсэн үг. θ2 нь RecCNN сургах боломжтой параметрүүд, res()
зүгээр л RecCNN-ийн үлдэгдэл гаралт юм. RecCNN нь Co() болон оролтын зургийн хоорондох ялгаан дээр сургагдсан боловч оролтын зураг дээр биш гэдгийг тэмдэглэх нь зүйтэй.
Зөн совингийн тодорхойлолт
Тэгшитгэл 2.0 нь RecCNN-ийг жингээ өөрчлөхөд хүргэдэг бөгөөд ингэснээр гаралт нь оролтын зурагтай аль болох адилхан харагдах болно.
Сурах схем
Загваруудыг давтах байдлаар сургадаг
Шалгалт
Зохиогчид өөрсдийн аргыг одоо байгаа аргууд, тэр дундаа энгийн кодлогчтой харьцуулсан. Тэдний арга нь тохирох тоног төхөөрөмж дээр өндөр хурдыг хадгалахын зэрэгцээ бусдаас илүү сайн ажилладаг. Нэмж дурдахад зохиогчид хоёр сүлжээний зөвхөн нэгийг нь ашиглахыг оролдсон бөгөөд гүйцэтгэл буурч байгааг тэмдэглэжээ.
Бүтцийн ижил төстэй байдлын индексийн харьцуулалт (SSIM). Өндөр утгууд нь анхныхтай илүү төстэй байгааг харуулж байна. Тод үсэг нь зохиогчдын ажлын үр дүнг илэрхийлнэ
дүгнэлт
Бид дүрсийг шахахад гүн гүнзгий суралцах аргыг ашиглах шинэ аргыг судалж, дүрс ангилах, хэл боловсруулах зэрэг "ерөнхий" ажлуудаас гадна даалгавруудад мэдрэлийн сүлжээг ашиглах боломжийн талаар ярилцсан. Энэ арга нь орчин үеийн шаардлагаас доогуур биш төдийгүй зургийг илүү хурдан боловсруулах боломжийг олгодог.
Бид Habravchan-д зориулж сурталчилгааны код хийсэн тул мэдрэлийн сүлжээг сурах нь илүү хялбар болсон ХАБР, баннер дээр заасан хөнгөлөлтөд нэмэлт 10% хөнгөлөлт үзүүлэх.
Мэдээллийн шинжлэх ухааны мэргэжлийг эхнээс нь заах Мэдээллийн шинжлэх ухааны онлайн сургалт Мэдээллийн шинжээчийн мэргэжлийг эхнээс нь сургах Data Analytics Online Bootcamp Вэб хөгжүүлэлтийн курст зориулсан Python
Илүү олон курс
Өгөгдлийн аналитик курс DevOps курс Мэргэжил вэб хөгжүүлэгч Эхнээс нь iOS хөгжүүлэгч мэргэжил Мэргэжил нь эхнээс нь Android хөгжүүлэгч Эхнээс нь Java хөгжүүлэгч мэргэжил JavaScript курс Машины сургалтын курс "Өгөгдлийн шинжлэх ухаанд зориулсан математик ба машин сургалт" курс "Machine Learning Pro + Deep Learning" ахисан түвшний сургалт
Онцлох нийтлэлүүд
Хэрхэн онлайн курсгүйгээр өгөгдөл судлаач болох вэ Айви лигийн 450 үнэгүй курс 5 сар дараалан долоо хоногт 9 өдөр Машины сургалтыг хэрхэн судлах вэ Мэдээллийн шинжээч хэр их орлого олдог вэ: 2020 онд Орос болон гадаад дахь цалин, сул ажлын байрны тойм. Уул уурхайн салбар дахь машин сургалт ба компьютерийн хараа
Эх сурвалж: www.habr.com