Область информатики, изучающая проблемы получения различных изображений на компьютере, называется
Обновлено: 21.11.2024
Информатика и области, связанные с вычислительной техникой: что это такое и в чем разница?
Широкая общественность не понимает, что такое информатика (иногда называемая просто "вычислениями") и чем она отличается от смежных областей, связанных с вычислительной техникой, таких как информационные системы и вычислительная техника. Это разные области, с разными направлениями обучения и разными карьерами и карьерными перспективами. Важно, чтобы учащийся, планирующий заняться одной из этих областей, знал различия, чтобы он или она могли найти область, которая лучше всего соответствует его или ее способностям, интересам и карьерным целям.
На этой странице рассматривается вопрос "Что такое информатика?" и обсуждается ее место в наборе областей, связанных с информатикой, которые обычно называют "вычислениями".
Короткий ответ
Следующие краткие определения основаны на определениях, используемых профессиональными сообществами в соответствующих областях. Более подробное обсуждение представлено в следующем разделе.
Информатика – это изучение теории, проектирования, реализации и производительности компьютерного программного обеспечения и компьютерных систем, включая изучение вычислимости и самих вычислений.
Компьютерная инженерия связана с проектированием компьютерного оборудования и компьютерных устройств. В той степени, в которой CE включает программное обеспечение, это программное обеспечение, тесно взаимодействующее с оборудованием для встроенных систем и компьютерных устройств.
Информационные системы как область деятельности связаны с применением современных информационных технологий для решения современных проблем, как правило, в сфере бизнеса и других предприятий
Длинный ответ
В оставшейся части этой страницы будет дано более полное описание трех областей вычислительной техники, представленных в кампусе UMaine. Из этих трех информатика (CS) является самой старой и обширной. Действительно, информационные системы (ИС) можно рассматривать как производные от КС, а вычислительная техника (КЭ) сформировалась на стыке КС и электротехники.
Тот факт, что на самом деле существует три отдельных области, каждая из которых имеет свою область изучения, подтверждается как минимум тремя вещами. Во-первых, эти три области обычно изучаются отдельно в университетах по всей стране и, как правило, реализуются на разных факультетах. Во-вторых, у них есть отдельные профессиональные сообщества. Основным профессиональным обществом компьютерных наук является Ассоциация вычислительной техники (ACM). Основным профессиональным сообществом компьютерной инженерии является Институт инженеров по электротехнике и электронике (IEEE). Для информационных систем основными обществами являются Ассоциация информационных систем (AIS) и Ассоциация специалистов по информационным технологиям (AITP). В-третьих, три поля должны соответствовать разным критериям аккредитации.
Лучше всего искать определения полей в информации, предоставленной самими профессиональными сообществами. Наиболее лаконично это изложено в различных документах, созданных в рамках совместного проекта обществ Computing Curricula 2001 (CC2001) (совместный проект IEEE и ACM с участием других профессиональных обществ). Приведенные ниже определения основаны на обзорном документе этого проекта: Computing Curricula 2005: The Overview Report (подготовлен Объединенной целевой группой по вычислительным программам 2005 г., совместный проект Ассоциации вычислительной техники, Ассоциации информационных систем и Компьютерной Общество IEEE, сентябрь 2005 г.). Это называется CC2005. Другие документы из этой серии также существуют и полезны для понимания различий между полями:
CS2001: Computing Curricula 2001: Computer Science, Объединенная рабочая группа по вычислительным программам, Компьютерное общество IEEE и Ассоциация вычислительной техники, декабрь 2001 г.
CE2004: Рекомендации по учебным программам для программ бакалавриата в области вычислительной техники: Отчет в серии учебных программ по вычислительной технике, Объединенная рабочая группа по учебным программам компьютерной инженерии, Компьютерное общество IEEE и Ассоциация вычислительной техники, декабрь 2004 г. Ассоциация вычислительной техники, Ассоциация информационных систем и Ассоциация специалистов по информационным технологиям, 2002 г.; часть проекта Computing Curricula 2001.
Еще один документ, SE2004, также существует для разработки программного обеспечения, но мы придерживаемся стандартной точки зрения, согласно которой разработка программного обеспечения может считаться частью информатики; это, безусловно, имеет место в этом кампусе, как и в крупных школах разработки программного обеспечения.
Для удобства CC2005 и другие документы доступны здесь.
Информатика
Компьютерная наука занимается изучением теории, дизайна, реализации и производительности компьютеров и компьютерного программного обеспечения, включая изучение вычислимости и самих вычислений. В CC2005 ACM и IEEE говорят:
Компьютерные науки охватывают широкий спектр: от теоретических и алгоритмических основ до передовых разработок в области робототехники, компьютерного зрения, интеллектуальных систем, биоинформатики и других интересных областей. Мы можем разделить работу ученых-компьютерщиков на три категории.
Они разрабатывают и внедряют программное обеспечение. Ученые-компьютерщики берутся за сложную работу по программированию. Они также контролируют других программистов, информируя их о новых подходах.
Они изобретают новые способы использования компьютеров. Прогресс в таких областях CS, как сеть, база данных и человеко-компьютерный интерфейс, способствовал развитию Всемирной паутины. Теперь исследователи CS работают с учеными из других областей, чтобы превратить роботов в практичных и умных помощников, использовать базы данных для создания новых знаний и использовать компьютеры для расшифровки секретов нашей ДНК.
Они разрабатывают эффективные способы решения вычислительных задач. Например, ученые-компьютерщики разрабатывают наилучшие возможные способы хранения информации в базах данных, отправки данных по сети и отображения сложных изображений. Их теоретический опыт позволяет им определять максимально возможную производительность, а изучение алгоритмов помогает им разрабатывать новые подходы, обеспечивающие более высокую производительность.
Информатика охватывает весь диапазон от теории до программирования. Учебные программы, отражающие эту широту, иногда критикуют за то, что они не готовят выпускников к конкретным профессиям. В то время как другие дисциплины могут дать выпускникам более актуальные для работы навыки, информатика предлагает всеобъемлющую основу, которая позволяет выпускникам адаптироваться к новым технологиям и новым идеям. [CC2005, с. 13]
В 2013 году была опубликована рекомендуемая учебная программа по компьютерным наукам, опубликованная в качестве Руководства по учебной программе для программ бакалавриата в области компьютерных наук, подготовленная Объединенной целевой группой по вычислительным учебным программам Ассоциации вычислительной техники (ACM) и IEEE Computer Society.
Компьютерная инженерия
Компьютерная инженерия, с другой стороны, связана с проектированием компьютерного оборудования и проектированием компьютерных устройств, но не с программными системами, общими вычислениями или общими вычислительными системами. ACM и IEEE в CC2005 говорят:
Компьютерная инженерия связана с проектированием и созданием компьютеров и компьютерных систем. Он включает в себя изучение аппаратного и программного обеспечения, коммуникаций и взаимодействия между ними. Его учебная программа сосредоточена на теориях, принципах и практике традиционной электротехники и математики и применяет их к проблемам проектирования компьютеров и компьютерных устройств. Студенты, изучающие компьютерную инженерию, изучают проектирование цифровых аппаратных систем, включая системы связи, компьютеры и устройства, содержащие компьютеры. Они изучают разработку программного обеспечения, уделяя особое внимание программному обеспечению для цифровых устройств и их интерфейсам с пользователями и другими устройствами. Исследование CE может делать упор на аппаратное обеспечение больше, чем на программное обеспечение, или может быть сбалансированный акцент. CE имеет сильный инженерный оттенок. В настоящее время доминирующей областью вычислительной техники являются встроенные системы, разработка устройств со встроенным программным и аппаратным обеспечением. Например, такие устройства, как сотовые телефоны, цифровые аудиоплееры, цифровые видеомагнитофоны, системы сигнализации, рентгеновские аппараты и лазерные хирургические инструменты, требуют интеграции аппаратного и встроенного программного обеспечения, и все они являются результатом компьютерной инженерии. [CC2005, с. 13]
Как сообщает Департамент ECE UMaine на своем веб-сайте:
Между CS и CE часто существует законное совпадение. Например, компьютерная архитектура довольно часто преподается и изучается как CE, так и CS, как это происходит в UMaine. Нейронные сети, компьютерное зрение и низкоуровневая робототехника, использующие в основном аппаратные или программно-аппаратные решения, также часто находятся в отделе CE, как это имеет место в UMaine. Дизайн СБИС, с другой стороны, было бы неразумно найти на кафедре информатики, и нельзя было бы ожидать найти базовые дисциплины информатики в CE или IS, такие как ИИ, графика и визуализация, высокопроизводительные вычисления (помимо из соображений аппаратного обеспечения), компьютерных сетей, систем баз данных (кроме приложений), разработки программного обеспечения и т. д.
Информационные системы
ACM и IEEE в CC2005 говорят:
Специалисты по информационным системам сосредоточены на интеграции решений в области информационных технологий и бизнес-процессов для удовлетворения информационных потребностей предприятий и других предприятий, что позволяет им достигать своих целей эффективным и действенным способом.Взгляд этой дисциплины на информационные технологии делает упор на информацию и рассматривает технологию как инструмент для создания, обработки и распространения информации. Профессионалов в этой дисциплине в первую очередь интересует информация, которую компьютерные системы могут предоставить, чтобы помочь предприятию в определении и достижении его целей, а также процессы, которые предприятие может внедрить или улучшить с помощью информационных технологий. […] Большинство программ информационных систем (ИС) находятся в бизнес-школах. Все степени IS сочетают в себе курс по бизнесу и информатике. Существует множество программ ИС под разными названиями, которые часто отражают характер программы. Например, программы по компьютерным информационным системам обычно имеют самую сильную технологическую направленность, в то время как программы по информационным системам управления делают акцент на организационных и поведенческих аспектах ИС. Названия программ на получение степени не всегда совпадают. [CC2005, стр. 14]
Другие связанные области
Новые медиа
Четвертая область в кампусе, New Media, вообще не является компьютерной дисциплиной, а скорее пересекается с вычислениями как пользователем компьютерных технологий:
Программа новых медиа Университета штата Мэн предлагает междисциплинарный курс обучения системам, технологиям, истории, дизайну и теории информации. Учебная программа позволяет студентам исследовать творческие и прикладные процессы, необходимые для этой области обучения. Он готовит студентов к технологическим способностям, ясному мышлению и творческим специалистам в области средств массовой информации. [Новые медиа UMaine]
Информационные технологии (ИТ)
Есть некоторая путаница в отношении другой, весьма прикладной области вычислительной техники, информационных технологий. (Обратите внимание, что «информационные технологии» (ИТ) здесь отличается по значению от термина, используемого в Стратегическом плане UMaine, где авторы в основном имеют в виду «вычисления».)
ACM и IEEE в CC2005 различают ИС и ИТ следующим образом. В то время как с точки зрения ИС основное внимание уделяется информации, технология рассматривается как инструмент для создания, обработки и распространения информации:
Информационные технологии делают акцент на самих технологиях больше, чем на информации, которую они передают. ИТ — это новая и быстро развивающаяся область, которая началась как ответ на практические повседневные потребности бизнеса и других организаций. Сегодня организации любого типа зависят от информационных технологий. Они должны иметь соответствующие системы на месте. Эти системы должны работать должным образом, быть безопасными, обновляться, обслуживаться и заменяться по мере необходимости. Сотрудникам всей организации требуется поддержка со стороны ИТ-специалистов, которые разбираются в компьютерных системах и их программном обеспечении и привержены решению любых проблем, связанных с компьютерами, которые у них могут возникнуть. Выпускники программ информационных технологий удовлетворяют эти потребности. Программы на получение степени в области информационных технологий возникли потому, что программы на получение степени в других компьютерных дисциплинах не производили достаточного количества выпускников, способных справиться с этими вполне реальными потребностями. ИТ-программы существуют для подготовки выпускников, которые обладают правильным сочетанием знаний и практического опыта, чтобы заботиться как об инфраструктуре информационных технологий организации, так и о людях, которые ее используют. ИТ-специалисты берут на себя ответственность за выбор аппаратных и программных продуктов, подходящих для организации, интеграцию этих продуктов с потребностями и инфраструктурой организации, а также за установку, настройку и обслуживание этих приложений для пользователей компьютеров организации. Примеры этих обязанностей включают установку сетей; сетевое администрирование и безопасность; дизайн веб-страниц; разработка мультимедийных ресурсов; установка коммуникационных компонентов; надзор за системами электронной почты; а также планирование и управление жизненным циклом технологии, посредством которого технология организации поддерживается, обновляется и заменяется. [CC2005, стр. 14]
Информационные технологии не представлены в кампусе UMaine. На самом деле есть некоторый вопрос относительно пригодности такой специальности в кампусе университета (в отличие от технического колледжа).
Информатика
С термином "информатика" связана дополнительная путаница. Это в своем первоначальном смысле относится к конкретной области, изучающей свойства информации как таковой, например, работа Шеннона по теории информации. Этот термин, который иногда используется как синоним термина «вычисления», стал обозначать академическое исследование представления, хранения и использования информации в отличие от вычислительной обработки этой информации или в дополнение к ней.
Школа вычислительной техники и информатики – это центр информационных наук в UMaine. Помимо компьютерных наук, школа уделяет большое внимание исследованиям в области информатики и последипломному образованию, в частности, в области географической информатики.
Компьютерное зрение – это область искусственного интеллекта (ИИ), которая позволяет компьютерам и системам извлекать значимую информацию из цифровых изображений, видео и других визуальных данных, а затем выполнять действия или давать рекомендации на основе этой информации. Если ИИ позволяет компьютерам думать, то компьютерное зрение позволяет им видеть, наблюдать и понимать.
Компьютерное зрение работает почти так же, как и человеческое, за исключением того, что у человека есть преимущество. Преимущество человеческого зрения заключается в продолжительности жизни контекста, чтобы научиться различать объекты, как далеко они находятся, движутся ли они и есть ли что-то неправильное в изображении.
Компьютерное зрение обучает машины выполнять эти функции, но для этого требуется гораздо меньше времени с помощью камер, данных и алгоритмов, а не сетчатки, зрительных нервов и зрительной коры. Поскольку система, обученная проверять продукты или наблюдать за производственным активом, может анализировать тысячи продуктов или процессов в минуту, замечая незаметные дефекты или проблемы, она может быстро превзойти возможности человека.
Компьютерное зрение используется в самых разных отраслях: от энергетики и коммунальных услуг до производства и автомобилестроения, и рынок продолжает расти. Ожидается, что к 2022 году он достигнет 48,6 млрд долларов США. 1
Как работает компьютерное зрение?
Компьютерному зрению требуется много данных. Он выполняет анализ данных снова и снова, пока не распознает различия и, в конечном счете, не распознает изображения. Например, чтобы научить компьютер распознавать автомобильные шины, ему нужно передать огромное количество изображений шин и элементов, связанных с шинами, чтобы изучить различия и распознать шину, особенно без дефектов.
Для этого используются две основные технологии: тип машинного обучения, называемый глубоким обучением, и сверточная нейронная сеть (CNN).
В машинном обучении используются алгоритмические модели, которые позволяют компьютеру самостоятельно изучать контекст визуальных данных. Если через модель передается достаточно данных, компьютер «посмотрит» на данные и научится отличать одно изображение от другого. Алгоритмы позволяют машине обучаться самостоятельно, а не тому, кто программирует ее для распознавания изображения.
CNN помогает модели машинного обучения или глубокого обучения «выглядеть», разбивая изображения на пиксели, которым присваиваются теги или метки. Он использует метки для выполнения сверток (математическая операция над двумя функциями для получения третьей функции) и делает прогнозы относительно того, что он «видит». Нейронная сеть выполняет свертки и проверяет точность своих прогнозов в серии итераций, пока прогнозы не начнут сбываться. Затем он распознает или видит изображения так же, как люди.
Подобно тому, как человек разбирает изображение на расстоянии, CNN сначала различает резкие края и простые формы, а затем заполняет информацию, выполняя итерации своих прогнозов. CNN используется для понимания отдельных изображений. Рекуррентная нейронная сеть (RNN) используется аналогичным образом для видеоприложений, чтобы помочь компьютерам понять, как изображения в серии кадров связаны друг с другом.
История компьютерного зрения
Ученые и инженеры уже около 60 лет пытаются разработать способы, с помощью которых машины смогут видеть и понимать визуальные данные. Эксперименты начались в 1959 году, когда нейрофизиологи показали кошке набор изображений, пытаясь сопоставить реакцию ее мозга. Они обнаружили, что он сначала реагирует на резкие края или линии, и с научной точки зрения это означает, что обработка изображений начинается с простых форм, таких как прямые края. (2)
Примерно в то же время была разработана первая технология компьютерного сканирования изображений, позволяющая компьютерам оцифровывать и получать изображения. Еще одна веха была достигнута в 1963 году, когда компьютеры смогли преобразовывать двухмерные изображения в трехмерные формы. В 1960-х годах ИИ стал академической областью исследований, и это также положило начало стремлению ИИ решить проблему человеческого зрения.
В 1974 году была представлена технология оптического распознавания символов (OCR), позволяющая распознавать текст, напечатанный любым шрифтом или гарнитурой. (3) Точно так же интеллектуальное распознавание символов (ICR) может расшифровывать рукописный текст с помощью нейронных сетей. (4) С тех пор OCR и ICR нашли свое применение в обработке документов и счетов, распознавании автомобильных номеров, мобильных платежах, машинном переводе и других распространенных приложениях.
В 1982 году нейробиолог Дэвид Марр установил, что зрение работает иерархически, и представил алгоритмы, позволяющие машинам обнаруживать края, углы, кривые и аналогичные базовые формы. Одновременно ученый-компьютерщик Кунихико Фукусима разработал сеть клеток, способных распознавать закономерности.Сеть под названием Неокогнитрон включала сверточные слои нейронной сети.
К 2000 году основное внимание уделялось распознаванию объектов, а к 2001 году появились первые приложения для распознавания лиц в реальном времени. Стандартизация того, как наборы визуальных данных помечаются и аннотируются, появилась в 2000-х годах. В 2010 году стал доступен набор данных ImageNet. Он содержал миллионы помеченных изображений в тысячах классов объектов и обеспечивает основу для CNN и моделей глубокого обучения, используемых сегодня. В 2012 году команда из Университета Торонто представила CNN для участия в конкурсе по распознаванию изображений. Модель под названием AlexNet значительно снизила количество ошибок при распознавании изображений. После этого прорыва количество ошибок снизилось до нескольких процентов. (5)
Алгоритм – это специальная процедура для решения четко определенной вычислительной задачи. Разработка и анализ алгоритмов лежат в основе всех аспектов информатики: искусственного интеллекта, баз данных, графики, сетей, операционных систем, безопасности и так далее. Разработка алгоритмов — это больше, чем просто программирование. Это требует понимания альтернатив, доступных для решения вычислительной задачи, включая аппаратное обеспечение, сеть, язык программирования и ограничения производительности, которые сопровождают любое конкретное решение. Это также требует понимания того, что значит для алгоритма быть «правильным» в том смысле, что он полностью и эффективно решает поставленную задачу.
Сопутствующее понятие – это разработка конкретной структуры данных, которая позволяет алгоритму работать эффективно. Важность структур данных связана с тем фактом, что основная память компьютера (где хранятся данные) является линейной и состоит из последовательности ячеек памяти, последовательно пронумерованных 0, 1, 2,…. Таким образом, простейшая структура данных представляет собой линейный массив, в котором соседние элементы нумеруются последовательными целочисленными «индексами», а доступ к значению элемента осуществляется по его уникальному индексу. Массив можно использовать, например, для хранения списка имен, а эффективные методы необходимы для эффективного поиска и извлечения определенного имени из массива. Например, сортировка списка в алфавитном порядке позволяет использовать так называемый метод бинарного поиска, при котором оставшаяся часть списка для поиска на каждом шаге разрезается пополам. Этот метод поиска похож на поиск определенного имени в телефонной книге. Зная, что книга находится в алфавитном порядке, можно быстро перейти на страницу, близкую к странице, содержащей нужное имя. Для эффективной сортировки и поиска списков данных было разработано множество алгоритмов.
Хотя элементы данных хранятся в памяти последовательно, они могут быть связаны друг с другом указателями (по сути, адресами памяти, хранящимися вместе с элементом, чтобы указать, где находится следующий элемент или элементы в структуре), чтобы данные можно было организовать в способами, аналогичными тем, которыми они будут доступны. Простейшая такая структура называется связанным списком, в котором к несмежным элементам можно получить доступ в заранее заданном порядке, следуя указателям от одного элемента в списке к другому. Список может быть циклическим, когда последний элемент указывает на первый, или каждый элемент может иметь указатели в обоих направлениях, образуя двусвязный список. Были разработаны алгоритмы для эффективного управления такими списками путем поиска, вставки и удаления элементов.
Указатели также позволяют реализовывать более сложные структуры данных. Граф, например, представляет собой набор узлов (элементов) и связей (известных как ребра), соединяющих пары элементов. Такой граф может представлять набор городов и соединяющих их автомагистралей, расположение элементов схемы и соединительных проводов на микросхеме памяти или конфигурацию людей, взаимодействующих через социальную сеть. Типичные алгоритмы графа включают стратегии обхода графа, например, как следовать ссылкам от узла к узлу (возможно, искать узел с определенным свойством) таким образом, чтобы каждый узел посещался только один раз. Связанной с этим проблемой является определение кратчайшего пути между двумя заданными узлами на произвольном графе. (См. теорию графов.) Проблема, представляющая практический интерес в сетевых алгоритмах, например, состоит в том, чтобы определить, сколько «сломанных» каналов связи можно допустить, прежде чем связь начнет прерываться. Аналогичным образом, при проектировании микросхем сверхбольшой интеграции (СБИС) важно знать, является ли граф, представляющий схему, плоским, то есть может ли он быть нарисован в двух измерениях без пересечения каких-либо звеньев (соприкосновения проводов). р>
(Вычислительная) сложность алгоритма – это мера количества вычислительных ресурсов (времени и пространства), потребляемых конкретным алгоритмом при его выполнении. Ученые-компьютерщики используют математические меры сложности, которые позволяют им предсказать до написания кода, насколько быстро будет работать алгоритм и сколько памяти ему потребуется.Такие прогнозы являются важным руководством для программистов, реализующих и выбирающих алгоритмы для реальных приложений.
Вычислительная сложность — это континуум, поскольку некоторые алгоритмы требуют линейного времени (то есть необходимое время увеличивается непосредственно с количеством элементов или узлов в списке, графе или обрабатываемой сети), тогда как другие требуют квадратичного или даже экспоненциальное время выполнения (то есть требуемое время увеличивается пропорционально количеству элементов в квадрате или экспоненциально от этого числа). В дальнем конце этого континуума лежит мутное море неразрешимых проблем, решения которых не могут быть эффективно реализованы. Для этих задач ученые-компьютерщики стремятся найти эвристические алгоритмы, которые могут почти решить проблему и выполняться за разумное время.
Еще дальше находятся те алгоритмические проблемы, которые могут быть сформулированы, но неразрешимы; то есть можно доказать, что никакая программа не может быть написана для решения проблемы. Классическим примером неразрешимой алгоритмической проблемы является проблема остановки, которая утверждает, что нельзя написать программу, которая может предсказать, остановится ли какая-либо другая программа после конечного числа шагов. Неразрешимость проблемы остановки имеет прямое практическое значение для разработки программного обеспечения. Например, было бы легкомысленно пытаться разработать программный инструмент, который предсказывает, есть ли в другой разрабатываемой программе бесконечный цикл (хотя наличие такого инструмента было бы чрезвычайно полезным).
Несмотря на то, что были приложены все усилия для соблюдения правил стиля цитирования, могут быть некоторые расхождения. Если у вас есть какие-либо вопросы, обратитесь к соответствующему руководству по стилю или другим источникам.
Наши редакторы рассмотрят то, что вы отправили, и решат, нужно ли пересматривать статью.
Информатика — это изучение компьютеров и вычислений, а также их теоретических и практических приложений. Информатика применяет принципы математики, инженерии и логики во множестве функций, включая формулирование алгоритмов, разработку программного и аппаратного обеспечения и искусственный интеллект.
Самые влиятельные ученые-компьютерщики – Алан Тьюринг, взломщик кодов времен Второй мировой войны, которого обычно называют "отцом современных вычислений"; Тим Бернерс-Ли, изобретатель Всемирной паутины; Джон Маккарти, изобретатель языка программирования LISP и пионер искусственного интеллекта; и Грейс Хоппер, офицер ВМС США и ключевая фигура в разработке первых компьютеров, таких как UNIVAC I, а также в разработке компилятора языка программирования.
Информатика применяется в широком спектре дисциплин, включая моделирование последствий изменения климата и вируса Эбола, создание произведений искусства и визуализацию с помощью графического рендеринга, а также моделирование человеческого интерфейса с помощью искусственного интеллекта и машинного обучения.< /p>
Разработка видеоигр основана на принципах информатики и программирования. Современный рендеринг графики в видеоиграх часто использует передовые методы, такие как трассировка лучей, для обеспечения реалистичных эффектов. Развитие дополненной реальности и виртуальной реальности также расширило спектр возможностей разработки видеоигр.
Многие университеты по всему миру предлагают программы обучения основам теории информатики и применениям компьютерного программирования. Кроме того, распространенность онлайн-ресурсов и курсов позволяет многим людям самостоятельно изучать более практические аспекты информатики (такие как программирование, разработка видеоигр и дизайн приложений).
информатика, изучение компьютеров и вычислений, включая их теоретические и алгоритмические основы, аппаратное и программное обеспечение, а также их использование для обработки информации. Дисциплина информатики включает изучение алгоритмов и структур данных, проектирование компьютеров и сетей, моделирование данных и информационных процессов, а также искусственный интеллект. Информатика черпает некоторые из своих основ из математики и инженерии и поэтому включает в себя методы из таких областей, как теория массового обслуживания, вероятность и статистика, а также проектирование электронных схем. Информатика также широко использует проверку гипотез и экспериментирование при концептуализации, проектировании, измерении и уточнении новых алгоритмов, информационных структур и компьютерных архитектур.
Информатика считается частью семейства пяти отдельных, но взаимосвязанных дисциплин: компьютерная инженерия, информатика, информационные системы, информационные технологии и разработка программного обеспечения. Это семейство стало известно под общим названием компьютерной дисциплины.Эти пять дисциплин взаимосвязаны в том смысле, что компьютеры являются объектом их изучения, но они разделены, поскольку каждая из них имеет свою собственную исследовательскую перспективу и учебную направленность. (С 1991 года Ассоциация вычислительной техники [ACM], Компьютерное общество IEEE [IEEE-CS] и Ассоциация информационных систем [AIS] сотрудничают в разработке и обновлении таксономии этих пяти взаимосвязанных дисциплин и руководств, которые образовательные учреждения использовать во всем мире для своих программ бакалавриата, магистратуры и исследовательских программ.)
Основные разделы информатики включают традиционное изучение компьютерной архитектуры, языков программирования и разработки программного обеспечения. Однако они также включают вычислительную науку (использование алгоритмических методов для моделирования научных данных), графику и визуализацию, взаимодействие человека и компьютера, базы данных и информационные системы, сети, а также социальные и профессиональные проблемы, которые являются уникальными для практики информатики. . Как может быть очевидно, некоторые из этих подполей пересекаются по своей деятельности с другими современными областями, такими как биоинформатика и вычислительная химия. Эти совпадения являются следствием склонности ученых-компьютерщиков признавать многочисленные междисциплинарные связи в своей области и действовать в соответствии с ними.
Развитие информатики
Информатика возникла как самостоятельная дисциплина в начале 1960-х годов, хотя электронный цифровой компьютер, являющийся объектом ее изучения, был изобретен на два десятилетия раньше. Корни информатики лежат в основном в смежных областях математики, электротехники, физики и информационных систем управления.
Математика является источником двух ключевых концепций разработки компьютеров — идеи о том, что вся информация может быть представлена в виде последовательности нулей и единиц, и абстрактного понятия «хранимой программы». В двоичной системе счисления числа представляются последовательностью двоичных цифр 0 и 1 точно так же, как числа в знакомой нам десятичной системе представляются цифрами от 0 до 9. Относительная легкость, с которой два состояния (например, высокое и низкое напряжение) могут быть реализованы в электрических и электронных устройствах, что естественным образом привело к тому, что двоичная цифра или бит стала основной единицей хранения и передачи данных в компьютерной системе.
Электротехника обеспечивает основы проектирования цепей, а именно идею о том, что электрические импульсы, поступающие в цепь, можно комбинировать с помощью булевой алгебры для получения произвольных выходных сигналов. (Булева алгебра, разработанная в 19 веке, предоставила формализм для проектирования схемы с двоичными входными значениями нулей и единиц [ложь или истина, соответственно, в терминологии логики], чтобы получить любую желаемую комбинацию нулей и единиц на выходе.) Изобретение транзистора и миниатюризация схем, а также изобретение электронных, магнитных и оптических носителей для хранения и передачи информации стали результатом достижений электротехники и физики.
Информационные системы управления, первоначально называвшиеся системами обработки данных, предоставили ранние идеи, на основе которых развились различные концепции информатики, такие как сортировка, поиск, базы данных, поиск информации и графические пользовательские интерфейсы. В крупных корпорациях размещались компьютеры, на которых хранилась информация, необходимая для ведения бизнеса: начисление заработной платы, бухгалтерский учет, управление запасами, контроль производства, отгрузка и получение.
Теоретическая работа над вычислительностью, начавшаяся в 1930-х годах, обеспечила необходимое распространение этих достижений на проектирование целых машин; важной вехой стала спецификация машины Тьюринга (теоретическая вычислительная модель, которая выполняет инструкции, представленные в виде последовательности нулей и единиц) в 1936 году британским математиком Аланом Тьюрингом и его доказательство вычислительной мощности модели. Еще одним прорывом стала концепция компьютера с хранимой в памяти программой, которую обычно приписывают американскому математику венгерского происхождения Джону фон Нейману. Это истоки области информатики, которая позже стала известна как архитектура и организация.
В 1950-х годах большинство пользователей компьютеров работали либо в научно-исследовательских лабораториях, либо в крупных корпорациях. Первая группа использовала компьютеры для выполнения сложных математических расчетов (например, траектории ракет), в то время как вторая группа использовала компьютеры для управления большими объемами корпоративных данных (например, платежных ведомостей и запасов). Обе группы быстро поняли, что писать программы на машинном языке нулей и единиц непрактично и ненадежно. Это открытие привело к разработке языка ассемблера в начале 1950-х годов, который позволяет программистам использовать символы для инструкций (например, ADD для сложения) и переменных (например, X).Другая программа, известная как ассемблер, переводила эти символические программы в эквивалентную двоичную программу, шаги которой компьютер мог выполнять или «выполнять».
Другие элементы системного программного обеспечения, известные как связывающие загрузчики, были разработаны для объединения фрагментов собранного кода и загрузки их в память компьютера, где они могли выполняться. Концепция связывания отдельных частей кода была важна, поскольку позволяла повторно использовать «библиотеки» программ для выполнения общих задач. Это был первый шаг в развитии области компьютерных наук, называемой разработкой программного обеспечения.
Позже, в 1950-х годах, язык ассемблера оказался настолько громоздким, что разработка языков высокого уровня (более близких к естественным языкам) стала поддерживать более простое и быстрое программирование. FORTRAN стал основным языком высокого уровня для научного программирования, а COBOL стал основным языком для бизнес-программирования. Эти языки несли с собой потребность в другом программном обеспечении, называемом компилятором, которое переводит программы на языке высокого уровня в машинный код. По мере того, как языки программирования становились все более мощными и абстрактными, создание компиляторов, создающих высококачественный машинный код и эффективных с точки зрения скорости выполнения и использования памяти, стало сложной задачей в области информатики. Разработка и реализация языков высокого уровня лежит в основе области компьютерных наук, называемой языками программирования.
Расширение использования компьютеров в начале 1960-х послужило толчком к разработке первых операционных систем, которые состояли из системно-резидентного программного обеспечения, которое автоматически обрабатывало ввод и вывод, а также выполняло программы, называемые «заданиями». Потребность в более совершенных вычислительных методах привела к возрождению интереса к численным методам и их анализу, и эта деятельность распространилась настолько широко, что стала известна как вычислительная наука.
В 1970-х и 80-х годах появились мощные компьютерные графические устройства, как для научного моделирования, так и для других видов визуальной деятельности. (Компьютерные графические устройства были представлены в начале 1950-х годов с отображением грубых изображений на бумажных графиках и экранах электронно-лучевых трубок [ЭЛТ].) Дорогое оборудование и ограниченная доступность программного обеспечения не позволяли этой области расти до начала 1980-х годов, когда компьютерная память, необходимая для растровой графики (в которой изображение состоит из маленьких прямоугольных пикселей), стала более доступной. Технология растровых изображений вместе с экранами с высоким разрешением и разработкой графических стандартов, которые делают программное обеспечение менее зависимым от машин, привели к взрывному росту этой области. Поддержка всех этих видов деятельности превратилась в область информатики, известную как графика и визуальные вычисления.
С этой областью тесно связано проектирование и анализ систем, которые напрямую взаимодействуют с пользователями, выполняющими различные вычислительные задачи. Эти системы получили широкое распространение в 1980-х и 90-х годах, когда линейное взаимодействие с пользователями было заменено графическими пользовательскими интерфейсами (GUI). Дизайн графического пользовательского интерфейса, который впервые был разработан Xerox, а затем был подхвачен Apple (Macintosh) и, наконец, Microsoft (Windows), важен, поскольку он представляет собой то, что люди видят и делают, взаимодействуя с вычислительным устройством. Разработка подходящих пользовательских интерфейсов для всех типов пользователей превратилась в область компьютерных наук, известную как взаимодействие человека с компьютером (HCI).
Xerox Alto был первым компьютером, в котором для управления системой использовались графические значки и мышь — первый графический пользовательский интерфейс (GUI).
Область компьютерной архитектуры и организации также претерпела значительные изменения с тех пор, как в 1950-х годах были разработаны первые компьютеры с хранимой в памяти программой. В 1960-х годах появились так называемые системы с разделением времени, позволяющие нескольким пользователям запускать программы одновременно с разных терминалов, жестко подключенных к компьютеру. В 1970-е годы были разработаны первые глобальные компьютерные сети (WAN) и протоколы для передачи информации на высоких скоростях между компьютерами, разделенными большими расстояниями. По мере развития этих видов деятельности они объединились в область компьютерных наук, называемую сетями и коммуникациями. Крупным достижением в этой области стало развитие Интернета.
Идея о том, что инструкции и данные могут храниться в памяти компьютера, имела решающее значение для фундаментальных открытий, касающихся теоретического поведения алгоритмов. То есть такие вопросы, как «Что можно/нельзя вычислить?» были официально рассмотрены с использованием этих абстрактных идей. Эти открытия положили начало области информатики, известной как алгоритмы и сложность. Ключевой частью этой области является изучение и применение структур данных, подходящих для различных приложений.Структуры данных, наряду с разработкой оптимальных алгоритмов для вставки, удаления и поиска данных в таких структурах, являются серьезной проблемой для ученых-компьютерщиков, поскольку они так интенсивно используются в компьютерном программном обеспечении, особенно в компиляторах, операционных системах, файловых системах и т. д. и поисковые системы.
В 1960-х годах изобретение накопителей на магнитных дисках обеспечило быстрый доступ к данным, расположенным в произвольном месте на диске. Это изобретение привело не только к более продуманным файловым системам, но и к развитию баз данных и систем поиска информации, которые позже стали необходимы для хранения, поиска и передачи больших объемов и разнообразных данных через Интернет. Эта область информатики известна как управление информацией.
Еще одной долгосрочной целью исследований в области компьютерных наук является создание вычислительных машин и роботизированных устройств, способных выполнять задачи, которые обычно считаются требующими человеческого интеллекта. К таким задачам относятся движение, зрение, слух, речь, понимание естественного языка, мышление и даже проявление человеческих эмоций. Область информатики интеллектуальных систем, первоначально известная как искусственный интеллект (ИИ), на самом деле возникла еще до появления первых электронных компьютеров в 1940-х годах, хотя термин искусственный интеллект появился только в 1956 году.
Три достижения в области вычислительной техники в начале 21 века — мобильные вычисления, клиент-серверные вычисления и взлом компьютеров – способствовали появлению трех новых областей компьютерных наук: разработка на основе платформ, параллельные и распределенные вычисления, и обеспечение безопасности и информации. Платформенная разработка — это изучение особых потребностей мобильных устройств, их операционных систем и их приложений. Параллельные и распределенные вычисления касаются разработки архитектур и языков программирования, которые поддерживают разработку алгоритмов, компоненты которых могут работать одновременно и асинхронно (а не последовательно), чтобы лучше использовать время и пространство. Безопасность и обеспечение информации связаны с проектированием вычислительных систем и программного обеспечения, которое защищает целостность и безопасность данных, а также конфиденциальность лиц, которые характеризуются этими данными.
Наконец, особую озабоченность компьютерных наук на протяжении всей их истории вызывает уникальное общественное влияние, которое сопровождает исследования в области компьютерных наук и технологические достижения. Например, с появлением Интернета в 1980-х разработчикам программного обеспечения необходимо было решить важные вопросы, связанные с информационной безопасностью, личной конфиденциальностью и надежностью системы. Кроме того, вопрос о том, является ли программное обеспечение интеллектуальной собственностью, и связанный с ним вопрос «Кому оно принадлежит?» породила совершенно новую правовую область лицензирования и стандартов лицензирования, которые применялись к программному обеспечению и связанным с ним артефактам. Эти и другие проблемы составляют основу социальных и профессиональных проблем компьютерных наук, и они появляются почти во всех других областях, указанных выше.
Подводя итог, можно сказать, что дисциплина компьютерных наук превратилась в следующие 15 отдельных областей:
Компьютерное зрение, часто сокращенно CV, определяется как область исследования, целью которой является разработка методов, помогающих компьютерам «видеть» и понимать содержимое цифровых изображений, таких как фотографии и видео.
Проблема компьютерного зрения кажется простой, потому что люди, даже очень маленькие дети, решают ее тривиально. Тем не менее, это в значительной степени остается нерешенной проблемой, основанной как на ограниченном понимании биологического зрения, так и на сложности зрительного восприятия в динамичном и почти бесконечно меняющемся физическом мире.
В этом посте вы найдете небольшое введение в область компьютерного зрения.
Прочитав этот пост, вы узнаете:
- Цель области компьютерного зрения и ее отличие от обработки изображений.
- Что делает проблему компьютерного зрения сложной.
- Типичные проблемы или задачи, решаемые в области компьютерного зрения.
Начните свой проект с моей новой книги Deep Learning for Computer Vision, включающей пошаговые руководства и файлы исходного кода Python для всех примеров.< /p>
Приступим.
Нежное введение в компьютерное зрение
Фото Акселя Кристинссона, некоторые права защищены.
Обзор
- Желание, чтобы компьютеры видели
- Что такое компьютерное зрение?
- Вызов компьютерного зрения
- Задачи в Computer Vision
Желание, чтобы компьютеры видели
Мы купаемся в изображениях.
Смартфоны оснащены камерами, а снимать фото или видео и делиться ими стало как никогда просто, что привело к невероятному росту современных социальных сетей, таких как Instagram.
YouTube может быть второй по величине поисковой системой, и каждую минуту загружаются сотни часов видео, а каждый день просматриваются миллиарды видео.
Интернет состоит из текста и изображений. Индексировать и искать текст относительно просто, но для индексации и поиска изображений алгоритмам необходимо знать, что содержат изображения. В течение долгого времени содержание изображений и видео оставалось непрозрачным, и лучше всего описывать их с помощью метаописаний, предоставленных человеком, который их загрузил.
Чтобы получить максимальную отдачу от данных изображения, нам нужны компьютеры, чтобы "видеть" изображение и понимать его содержание.
Это тривиальная проблема для человека, даже для маленького ребенка.
- Человек может описать содержание фотографии, которую он видел однажды.
- Человек может резюмировать видео, которое он видел только один раз.
- Человек может узнать лицо, которое он видел только однажды.
Чтобы разблокировать наши изображения и видео, нам требуются как минимум такие же возможности компьютеров.
Хотите получить результаты с помощью глубокого обучения для компьютерного зрения?
Пройдите мой бесплатный 7-дневный экспресс-курс по электронной почте прямо сейчас (с образцом кода).
Нажмите, чтобы зарегистрироваться, а также получить бесплатную электронную версию курса в формате PDF.
Нажмите здесь, чтобы подписаться
Что такое компьютерное зрение?
Компьютерное зрение — это область исследования, посвященная проблеме помощи компьютерам в зрении.
На абстрактном уровне цель задач компьютерного зрения состоит в том, чтобы использовать данные наблюдаемого изображения, чтобы сделать вывод о мире.
Это междисциплинарная область, которую можно в широком смысле назвать подобластью искусственного интеллекта и машинного обучения, которая может включать использование специализированных методов и использование общих алгоритмов обучения.
Обзор взаимосвязи искусственного интеллекта и компьютерного зрения
Как междисциплинарная область исследования, она может выглядеть запутанной, с методами, заимствованными и повторно используемыми из целого ряда разрозненных инженерных и компьютерных наук.
Одну конкретную проблему со зрением можно легко решить с помощью статистического метода, созданного вручную, тогда как для другой может потребоваться большой и сложный набор обобщенных алгоритмов машинного обучения.
Компьютерное зрение как область интеллектуального развития. Как и любая граница, она захватывающая и неорганизованная, и часто нет надежного авторитета, к которому можно было бы обратиться. Многие полезные идеи не имеют теоретического обоснования, а некоторые теории бесполезны на практике; застроенные районы разбросаны очень широко, и зачастую один из них выглядит совершенно недоступным с другого.
Целью компьютерного зрения является понимание содержания цифровых изображений. Как правило, это включает в себя разработку методов, которые пытаются воспроизвести возможности человеческого зрения.
Понимание содержания цифровых изображений может включать в себя извлечение описания из изображения, которое может быть объектом, текстовым описанием, трехмерной моделью и т. д.
Компьютерное зрение — это автоматизированное извлечение информации из изображений. Информация может означать что угодно: от 3D-моделей, положения камеры, обнаружения и распознавания объектов до группировки и поиска содержимого изображения.
Компьютерное зрение и обработка изображений
Компьютерное зрение отличается от обработки изображений.
Обработка изображений – это процесс создания нового изображения из существующего, обычно с упрощением или улучшением содержания. Это разновидность цифровой обработки сигналов, не связанная с пониманием содержания изображения.
Данная система компьютерного зрения может потребовать применения обработки изображения к необработанным входным данным, например. предварительная обработка изображений.
Примеры обработки изображений включают:
- Нормализация фотометрических свойств изображения, таких как яркость или цвет.
- Обрезка границ изображения, например центрирование объекта на фотографии.
- Удаление цифрового шума с изображения, например цифровых артефактов при слабом освещении.
Вызов компьютерного зрения
Помочь компьютерам увидеть очень сложно.
Целью компьютерного зрения является извлечение полезной информации из изображений. Это оказалось удивительно сложной задачей; за последние четыре десятилетия им были заняты тысячи интеллектуальных и творческих умов, и, несмотря на это, мы все еще далеки от того, чтобы построить универсальную «машину-зрение».
Компьютерное зрение кажется простым, возможно, потому, что это так легко для людей.
Изначально считалось, что это тривиально простая задача, которую может решить студент, подключив камеру к компьютеру. После десятилетий исследований «компьютерное зрение» остается нерешенным, по крайней мере, с точки зрения соответствия возможностям человеческого зрения.
В шестидесятых ведущие специалисты в области искусственного интеллекта считали, что заставить компьютер видеть, это было на уровне сложности летнего студенческого проекта. Сорок лет спустя задача все еще не решена и кажется огромной.
Одна из причин заключается в том, что мы плохо понимаем, как работает человеческое зрение.
Изучение биологического зрения требует понимания органов восприятия, таких как глаза, а также интерпретации восприятия мозгом. Был достигнут значительный прогресс как в составлении схемы процесса, так и с точки зрения обнаружения приемов и упрощений, используемых системой, хотя, как и в любом исследовании, затрагивающем мозг, предстоит пройти долгий путь.
Психологи восприятия потратили десятилетия, пытаясь понять, как работает зрительная система, и, хотя они могут придумывать оптические иллюзии, чтобы разобрать некоторые из ее принципов, полное решение этой загадки остается недостижимым
цитата>Еще одна причина, почему это такая сложная проблема, заключается в сложности, присущей визуальному миру.
Заданный объект можно увидеть с любой ориентации, при любых условиях освещения, с любым типом окклюзии от других объектов и т. д. Настоящая система технического зрения должна быть способна «видеть» в любой из бесконечного числа сцен и при этом извлекать что-то значимое.
Компьютеры хорошо справляются с задачами с жесткими ограничениями, а не с открытыми неограниченными задачами, такими как зрительное восприятие.
Задачи в компьютерном зрении
Тем не менее в этой области наблюдается прогресс, особенно в последние годы с массовыми системами оптического распознавания символов и распознавания лиц в камерах и смартфонах.
Компьютерное зрение находится на чрезвычайном этапе своего развития. Сама тема существует с 1960-х годов, но только недавно стало возможным создавать полезные компьютерные системы, используя идеи компьютерного зрения.
Учебник по компьютерному зрению 2010 года под названием "Компьютерное зрение: алгоритмы и приложения" содержит список некоторых проблем высокого уровня, в которых мы видели успех компьютерного зрения.
- Оптическое распознавание символов (OCR)
- Осмотр машины
- Розничная торговля (например, автоматизированные кассы)
- Построение 3D-моделей (фотограмметрия)
- Медицинская визуализация
- Автомобильная безопасность
- Подбор движения (например, объединение компьютерной графики с живыми актерами в фильмах)
- Захват движения (мокап)
- Наблюдение
- Распознавание отпечатков пальцев и биометрия
Это широкая область исследования с множеством специализированных задач и методов, а также специализаций для целевых областей применения.
Компьютерное зрение имеет широкий спектр приложений, как старых (например, навигация мобильных роботов, промышленная инспекция и военная разведка), так и новых (например, взаимодействие человека с компьютером, поиск изображений в цифровых библиотеках, анализ медицинских изображений, и реалистичный рендеринг синтетических сцен в компьютерной графике).
Может быть полезно увеличить некоторые из более простых задач компьютерного зрения, с которыми вы, вероятно, столкнетесь или захотите решить, учитывая огромное количество общедоступных цифровых фотографий и видео.
Многие популярные приложения компьютерного зрения пытаются распознавать объекты на фотографиях. например:
- Классификация объектов. Какая широкая категория объектов относится к этой фотографии?
- Идентификация объекта: какой тип данного объекта изображен на этой фотографии?
- Проверка объекта: есть ли объект на фотографии?
- Обнаружение объектов: где находятся объекты на фотографии?
- Обнаружение ориентира объекта: каковы ключевые точки объекта на фотографии?
- Сегментация объекта: какие пиксели относятся к объекту на изображении?
- Распознавание объектов: какие объекты изображены на этой фотографии и где они находятся?
Другие распространенные примеры связаны с поиском информации; например: поиск изображений, похожих на изображение, или изображений, содержащих объект.
Дополнительная литература
В этом разделе содержится больше ресурсов по теме, если вы хотите углубиться в нее.
Книги
Статьи
Обзор
В этом посте вы нашли небольшое введение в область компьютерного зрения.
В частности, вы узнали:
- Цель области компьютерного зрения и ее отличие от обработки изображений.
- Что делает проблему компьютерного зрения сложной.
- Типичные проблемы или задачи, решаемые в области компьютерного зрения.
Есть вопросы?
Задавайте свои вопросы в комментариях ниже, и я постараюсь ответить.Разработайте модели глубокого обучения для машинного зрения уже сегодня!
Разработайте собственные модели видения за считанные минуты
<р>. всего несколькими строками кода PythonОн содержит учебные пособия для самостоятельного изучения по таким темам, как
классификация, обнаружение объектов (yolo и rcnn), распознавание лиц (vggface и facenet). ), подготовка данных и многое другое.Читайте также: