Показаны сообщения с ярлыком общее. Показать все сообщения
Показаны сообщения с ярлыком общее. Показать все сообщения

пятница, 11 августа 2017 г.

Типы лицензий OpenSource

Открытый код означает именно то, что написано, – исходный код таких программ доступен для ознакомления и модификации, а лицензии описывают, что можно делать с этим кодом, а чего делать нельзя. Данные ограничения затрагивают в основном коммерческих разработчиков программных продуктов и электронного оборудования.

GPL
GNU GPL (GNU General Public License) — одна из наиболее распространенных open source-лицензий. Под этой лицензией распространяются ядро Linux, MySQL, Asterisk и многие другие. Большинство CMS систем, таких как MovableType, MODx, WordPress, Joomla, Drupal, osCommerce и множество других выпускаются под GPL. По разным данным, в мире до 70% open source-ПО выпускается под GPL.


Основная цель GPL - защитить открытость свободного ПО. Он призван защитить разработчиков от того, что их наработки будут использованы создателями закрытого ПО в своих продуктах. Основное условие GPL: продукт, использующий код, защищенный этой лицензией, должен распространяться также под GPL и его исходный код должен быть доступен получателю такого продукта, который может делать с этим кодом все что угодно в рамках GPL.


Таким образом, если вы создаете проект на основе кода, защищенного GPL, вы обязаны распространять свой продукт под GPL. Распространение в данном случае не означает только лишь дистрибуцию конечного продукта. Под этот термин подпадает также и передача продукта заказчику исходных кодов ПО. Единственная ситуация, в которой требования GPL не являются обязательными, — отсутствие факта распространения как такового. То есть вы используете модифицированный код исключительно в личных целях или в целях компании, в которой работаете.


LGPL

GNU LGPL (GNU Lesser General Public License) отличается от GPL тем, что позволяет использовать продукты LGPL в проектах, распространяемых под другими лицензиями. То есть условия, сходные с GPL, распространяются только на ту часть производного продукта, которая заимствована из продукта, защищенного LGPL.


Изначально создатели GPL и LGPL – Free Software Foundation – предполагали использование GPL в готовых продуктах, а LGPL — в библиотеках для разработчиков, но на данный момент такое разделение не соответствует действительности. Наиболее известный продукт, выпускаемый под LGPL, – OpenOffice.org.


BSD

BSD (Berkeley Software Distribution) представляет противоположный фланг лицензирования open source-продуктов. Это очень либеральная и очень короткая лицензия. От разработчиков, использующих ПО, распространяемое под лицензией BSD, требуется лишь указывать в документации, что в продукте используются разработки создателей оригинального программного обеспечения и запрещается использовать имена (или названия) создателей этого ПО в рекламных целях без их письменного согласия. Также необходимо включать стандартный текст об ограничении ответственности разработчиков за последствия использования данного ПО.


Таким образом разработки, распространяемые под BSD, можно смело использовать в своих не open source-проектах при соблюдении этих несложных условий. Самой известной компанией, использующей преимущества лицензии BSD является компания Apple.

MIT

MIT (Massachusetts Institute of Technology), является так же «разрешающей» лицензией. То есть ПО, лицензируемое под MIT, можно использовать в закрытых продуктах. Единственным существенным отличием от BSD является отсутствие пункта, запрещающего использовать название продукта и имена создателей в рекламных целях.

X Window System (X11), Ruby on Rails — наиболее известные проекты, распространяемые под MIT.

Tokyo

Embracadero RAD Studio 10.2 



Борланд наконец-то сделал бесплатную сборку C++ Builder. Правда она имеет существенные ограничения, тем не менее позволяет собирать и распространять компоненты и приложения абсолютно легально. 

Семантический анализ изображений.

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

Проблемы семантического анализа.

  1. Объект (понятие) состоит из более мелких понятий – структура объекта. Например, структура лица человека состоит из собственно характерного овала, глаз, носа, рта, бровей, возможно ушей. Само лицо является частью головы. Причем нос нельзя свести к атрибутам – нос есть всегда и слово носатый относится к свойствам самого носа! Это означает, необходима концепция полного описания объекта. Наличие минимальной структурной единицы. Локализация понятия на изображении не исчерпывает задачу.
  2. Кроме того, объект находится в какой то среде. Является ли эта среда с нашей точки зрения объектом? Описание сцены – вот что тоже нужно обсудить. Нужно найти модельную ситуацию, в которой сцена может быть описана с применением наших технологий достаточно хорошо. Описание сцены не сводится просто к описанию объектов. Это уже более широкая задача. Это и связи между объектами, количество однотипных объектов, информация об относительных размерах объектов и т.п. Может быть, выделять планы, имеется в виду передний план, задний план, объекты задающие характерные размеры, например монета, на фотографии с электронными устройствами. Соответственно таблица описания изображений должна учитывать такие характеристики.
  3. Важно описывать связь между объектами. Пространственная связь (самая простая), определяемая координатами объектов, должна правильно выражаться на естественном языке. Более сложное описание связей это соотношений частей самого объекта - поз объекта. Например, если объект человек, то положение рук, ног, стоит, сидит или лежит. Если лицо, то в фас или профиль (левый или правый), куда или на кого смотрит и т.п.
  4. Должно отражаться количество однотипных объектов, их взаимное расположение.
  5. Далее мало внимания уделяется вопросу описания низкоуровневых характеристик изображения - наличие локальных точек, распределение цветов, и т.п. Я бы сказал, что получение низкоуровневых характеристик это необходимый этап предобработки изображения для его дальнейшего анализа. Нужно ли это делать? Поможет ли находить изображения? Насколько важно хорошо делать сегментацию изображения? Поможет ли сегментация в описании сцен, в ускорении поиска объектов.
  6. Большое количество детекторов приводит к проблеме, связанной со скоростью анализа изображения. Нужны какие-то идеи, алгоритмы по эвристическому, ассоциативному ограничению детекторов при каждом следующем шаге при анализе изображения. То есть нужно понять как ввести систему знаний о мире в программное решение.

Обработка изображений и их анализ.

Обработка изображений: 

Пусть имеется изображение S(x, y) и имеется процесс преобразования его в другое изображение R(x,y) =  F[I(x,y)] этот процесс будем называть "обработкой изображения". К обработке изображения относятся процессы конвертации, фильтрации, нормировки, рисования примитивов на изображении, бинаризации и геометрические операции.
Основные операции обработки изображения, которые выполняет awpipl2
  1. Конвертация изображений 
  2. Нормировка изображений
  3. Фильтрация изображений 
  4. Геометрические преобразования 
  5. Отрисовка геометрических примитивов на изображениях. 

Анализ изображений:

Пусть имеется изображение S(x, y) и имеется процесс D[A(x,y)] преобразования этого изображения в другие данные (не изображение), в числа или списки, массивы или структуры данных, которые описывают свойства и характеристики S(x, y), то этот процесс будем называть "процессом анализа изображения".
Основные операции анализа изображений, которые выполняет awpipl2
  1. Вычисление статистических характеристик изображения S(x,y)
  2. Нахождение геометрических кластеров на изображении и вычисление их характеристик. 
  3. Нахождение объектов заданного типа на изображении. 
  4. Вычисление признаков изображения.