КПП СОД — Камера запуска и приёма средств очистки и диагностики (7 заезд)
Обеспечение эксплуатационной надежности линейной части газопровода достигают комплексом организационных и технических мероприятий, направленных на поддержание работоспособного состояния линейной части.
Техническое диагностирование магистрального газопровода осуществляют на протяжении всего жизненного цикла до вывода объекта из эксплуатации. Одним из способов диагностирования является внутритрубное диагностирование.
Камеры приема с быстродействующим затвором предназначены
для приёма из трубопровода поточных средств (скребков, разделителей дефектоскопов и др.)
Камеры приёма устанавливаются на трубопроводах Ду 150,200,300,350,400,500,700,800,1000,1200,1400 мм, работающих под давлением до 8,0 Мпа.
По техническому заданию заказчика, устройства камер запуска и приема могут изготавливаться на другие типоразмеры (в т.ч. под дюймовые трубы) и другие параметры эксплуатации (в т.ч. на давление до 16,0 МПа).
В зависимости от сейсмичности района размещения камеры могут изготавливаться в трех исполнениях: не сейсмостойкого исполнения — СО, сейсмостойкого исполнения — С и повышенной сейсмостойкости — ПС. Температура эксплуатации от минус 60 С до +80 С.
Цель проведения очистных и диагностических работ:
— увеличение пропускной способности трубопровода без остановки перекачки продукта;
— снижение, по возможности, периодичности проведения плановых очистных работ за счет подбора очистных поршней непосредственно для данного участка трубопровода;
— по результатам технического отчета внутритрубной диагностики, специалисты эксплуатирующие данный трубопровод проводят ремонтные работы, направленные на устранение дефектов.
Вследствие непрерывного выпадения из перекачиваемого продукта различного рода осадков, образования внутренних газовоздушных скоплений
и воды сечение трубопровода уменьшается. Это ведет к снижению пропускной способности и увеличению гидравлического сопротивления трубопровода. При этом удельные расходы электроэнергии на транспорт углеводородов возрастают.
Практически это заставляет либо уменьшать скорости перекачки, либо работать циклически, с частыми остановками. И то, и другое провоцирует процессы образования водяных и газовых скоплений. Уменьшение объемов перекачки дополнительно увеличивает абсолютную шероховатость стенок труб, ускоряет процессы образования внутритрубных отложений различной природы, увеличивает темпы коррозионного износа внутренней поверхности трубопроводов.
Наряду с уменьшением уровня надежности эксплуатации эти процессы способствуют и увеличению гидравлического сопротивления нефтепроводов и нефтепродуктопроводов, что в конечном итоге приводит к росту удельных энергозатрат на транспорт нефти и нефтепродуктов.
Эффективным способом уменьшения гидравлического сопротивления трубопроводов является очистка его внутренней полости тем или иным методом, в основном применяют пропуск очистного устройства. Очистка производится в среде перекачиваемого продукта, без остановки трубопровода – в процессе его эксплуатации (нефтесборные сети, межпромысловые и магистральные трубопроводы).
Семья Гольцер (АО «Транснефть — Западная Сибирь»), семья Тарабычиных (ООО «Транснефть – Восток»), семья Горбуновых (ООО «ЦУП ВСТО»), семья Коковиных (ПАО «Транснефть»), семья Струковых (АО «Транснефть – Подводсервис»).
КПП СОД, задвижек основной, резервной нитки и перемычки
Заглавная страница
КАТЕГОРИИ: Археология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрации Техника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ? Влияние общества на человека Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. |
⇐ ПредыдущаяСтр 6 из 12Следующая ⇒ Мы, нижеподписавшиеся (должность, ФИО) 1_Начальник ЛПДС (НПС)_________________________________________________________ 2_Начальник ЛАЭС______________________________________________________________ 3_Представители специализированного подразделения ОСТ или подрядной организации, выполнявшие работу _____________________________________________________________ составили настоящий акт о том, что «» 20 г. произведены: контроль геодезических отметок, расположенных в соответствии со схемой нивелировки (рисунки 1, 2, 3, 4) и нивелировка оси __________________________________________________________, указать оборудование расположенной на (подводном переходе, линейной части) магистрального нефтепровода/нефтепродуктопровода _____________________________________________ нужное подчеркнуть наименование МТ, км по трассе через __________________________________________________________________ наименование водной преграды Результаты контроля 1 Положение точек нивелировки соответствует/не соответствует Схеме (нужное подчеркнуть) нивелировки к настоящему акту (рисунки 1, 2, 3, 4). 2 Отклонения отметок от проектных значений (предыдущих измерений) отсутствуют/в пределах допустимых отклонений/превышают предельные отклонения. (нужное подчеркнуть) 3 Значения высотных отметок, определенные при проведении контроля, указаны в таблице Результаты замеров высотных отметок. 4 ___________________________________________________________________________________
Срок хранения акта проведения контроля геодезических отметок и нивелировки оси камеры пуска-приема средств очистки и диагностирования – 5 лет.
Подписи: ____________________ И.О. Фамилия ____________________ И.О. Фамилия ____________________ И.О. Фамилия ____________________ И.О. Фамилия ____________________ И.О. Фамилия ____________________ И.О. Фамилия Схема нивелировки к акту от «____»_________20_____г. проведения контроля геодезических отметок и нивелировки оси ___________________________________, указать оборудование расположенной на (подводном переходе, линейной части) нужное подчеркнуть магистрального нефтепровода (нефтепродуктопровода) ___________________________ нужное подчеркнуть наименование МТ, км по трассе через _______________________________________ наименование водной преграды
Рисунок 1 – Схема привязки к сварным стыкам камеры
т.
Рисунок 2 – Схема закрепления промерных точек КПП СОД с подземным расположением задвижки
т.1 – т. 21 – Точки контроля геодезических отметок
Рисунок 3 – Схема закрепления промерных точек КПП СОД с надземным расположением задвижки Точки нивелировки должны быть закреплены на поверхности оборудования (магистральные задвижки, камеры пуска-приема СОД) несмываемой краской (крест 100х100 мм, толщина линии 10 мм), на весь период эксплуатации необходимо обеспечить их сохранность. Точки нивелировки номера 3, 4, 5, 6 закрепить на верхней образующей трубы и привязать к сварным стыкам и деталям камеры (рисунки 2, 3). Данные схемы должны быть включены в паспорт-формуляр камеры СОД. Деформационные марки в точках 19, 20, 21, … устанавливаются на фундамент в соответствии с РД-91.080.00-КТН-059-15. Допускаемые значения вертикальных перемещений фундаментов камеры СОД (просадка) определяются проектной документацией на основе проверочных расчетов на прочность подводящих трубопроводов камеры СОД (технологическая обвязка). При превышении указанной в проектной документации расчетной величины допускаемых вертикальных перемещений фундаментов камеры СОД, эксплуатация камер СОД запрещается. Величина вертикальных перемещений фундаментов камеры СОД должна контролироваться на всём протяжении срока эксплуатации камеры СОД. Нивелировка магистральных задвижек проводится на многониточных и однониточных ППМТ.
т.1 – т. 18 – Точки контроля геодезических отметок
Рисунок 4 – Схема промерных точек задвижки КПП СОД
Подписи: ____________________ И.О. Фамилия ____________________ И.О. Фамилия ____________________ И.О. Фамилия ____________________ И.О. Фамилия
____________________ И.О. Фамилия ____________________ И.О. Фамилия
Результаты замеров высотных отметок к акту от «____»_________20_____г.
проведения контроля геодезических отметок и нивелировки оси ___________________________________, указать оборудование расположенной на (подводном переходе, линейной части) нужное подчеркнуть магистрального нефтепровода (нефтепродуктопровода) ___________________________________________ нужное подчеркнуть наименование МТ, км по трассе через _______________________________________ наименование водной преграды
Подписи: ____________________ И. ____________________ И.О. Фамилия ____________________ И.О. Фамилия Приложение Е
Ведомость ⇐ Предыдущая12345678910Следующая ⇒ Читайте также: Техника прыжка в длину с разбега Тактические действия в защите История Олимпийских игр История развития права интеллектуальной собственности |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-19; просмотров: 927; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia. |
C/C++ — встроенный SOD
Справочник API C/C++
StarFollow @symisc
На этой странице определяется интерфейс языка C для SOD. Это не учебник. Документация по API предназначена для обеспечения точности. Не легко читать. Для ознакомления с учебным пособием см.:
- Руководство по началу работы — краткое введение в программирование с помощью SOD Embedded C/C++ API.
- Образцы кода C/C++ доступны для ознакомления на странице примеров и загружаются в виде целого архива со страницы загрузки или из репозитория SOD на GitHub.
- Наконец, загляните на страницу поддержки, если у вас возникли проблемы с интеграцией SOD в ваш проект.
Эта версия справочника по интерфейсу на языке C разбита на небольшие страницы для удобства просмотра.
Экспортированные объекты
Это список всех абстрактных объектов и типов данных, экспортируемых и управляемых SOD:
- sod_cnn
- дерн_реалнет
- sod_img
- sod_box
- sod_pts
- дерн_realnet_trainer
- дерн_realnet_model_handle
Директивы времени компиляции
Директивы времени компиляции для исключения/включения функций , не предусмотренных в сборке по умолчанию:
- SOD_DISABLE_IMG_READER
- SOD_DISABLE_IMG_WRITER
- SOD_DISABLE_CNN
- SOD_ENABLE_NET_TRAIN
- SOD_ENABLE_OPENCV
Экспортированные функции
SOD API разбит на пять независимых категорий:
- Сверточные/рекуррентные нейронные сети (CNN/RNN)
- Контейнер RealNets
- Манипуляция и обработка изображений
- Дополнительно (время компиляции) Интерфейсы интеграции OpenCV
- Дополнительно (время компиляции) Обучающие интерфейсы модели RealNets
Экспортированные функции C/C++
Интерфейсы CNN/RNN
- sod_cnn_create
- sod_cnn_config
- sod_cnn_predict
- дерн_cnn_destroy
- sod_cnn_prepare_image
- sod_cnn_get_network_size
Обучающие интерфейсы CNN/RNN
- SOD Обучение CNN/RNN
Интерфейсы RealNets
- sod_realnet_create
- дерн_realnet_load_model_from_mem
- sod_realnet_load_model_from_disk
- дерн_realnet_model_config
- sod_realnet_detect
- дерн_realnet_destroy
Учебные интерфейсы RealNets
- sod_realnet_train_init
- дерн_realnet_train_config
- дерн_realnet_train_start
- дерн_realnet_train_release
Интерфейсы обработки изображений/кадров
- sod_hilditch_thin_image
- sod_minutiae
- дерн_canny_edge_image
- sod_sobel_image
- дерн_hough_lines_detect
- дерн_hough_lines_release
- дерн_image_find_blobs
- sod_image_blob_boxes_release
- sod_otsu_binarize_image
- sod_binarize_image
- sod_threshold_image
- sod_dilate_image
- дерн_erode_image
- дерн_серого_изображения
- дерн_серого_изображения_3c
- дерн_гауссовский_шум_уменьшить
- дерн_эквалайзер_гистограмма
- дерн_composite_image
- дерн_флип_изображение
- дерн_изображение_расстояние
- дерн_embed_image
- sod_sharpen_filtering_image
- дерн_rotate_crop_image
- sod_image_draw_box
- дерн_изображение_draw_box_grayscale
- sod_image_draw_bbox
- sod_image_draw_bbox_width
- дерн_изображение_draw_line
- дерн_image_draw_circle
- дерн_изображение_draw_circle_thickness
- sod_resize_image
- дерн_ресайз_макс
- sod_resize_min
- дерн_random_crop_image
- дерн_random_augment_image
- sod_translate_image
- дерн_масштаб_изображение
- дерн_blend_image
- дерн_масштаб_изображения_канал
- sod_translate_image_channel
- дерн_normalize_image
- sod_transpose_image
- дерн_rotate_image
- дерн_кроп_изображение
Интерфейсы доступа и преобразования необработанных пикселей
- sod_img_get_pixel
- дерн_img_set_pixel
- дерн_img_add_pixel
- дерн_img_get_layer
- sod_img_rgb_to_hsv
- sod_img_hsv_to_rgb
- sod_img_rgb_to_bgr
- sod_img_bgr_to_rgb
- sod_img_yuv_to_rgb
- sod_img_rgb_to_yuv
Интерфейсы создания образов и загрузки/сохранения больших двоичных объектов
- sod_copy_image
- sod_free_image
- sod_img_load_from_file
- дерн_img_load_from_mem
- sod_img_set_load_from_directory
- sod_img_set_release
- sod_img_save_as_png
- sod_img_save_as_jpeg
- sod_image_to_blob
- дерн_изображение_free_blob
- дерн_img_blob_save_as_png
- sod_img_blob_save_as_jpeg
- sod_img_blob_save_as_bmp
- дерн_img_load_color
- дерн_img_load_grayscale
- дерн_make_empty_image
- дерн_make_image
- дерн_make_random_image
Интерфейсы интеграции OpenCV
- sod_img_load_cv_ipl
- дерн_img_load_from_cv
- дерн_img_load_from_cv_stream
- дерн_img_fill_from_cv_stream
- sod_img_save_to_cv_jpg
Разное
- sod_lib_copyright
Экспортированные объекты C/C++
Это список всех абстрактных объектов и типов данных, экспортируемых библиотекой SOD. Объектов немного, но большинство приложений используют лишь несколько.
• sod_cnn
typedef struct sod_cnn sod_cnn;
Экземпляр непрозрачной структуры sod_cnn содержит все слои стандартной сверточной нейронной сети ( CNN ) или рекуррентной нейронной сети ( RNN ). Синтаксис основан на платформе даркнета, а задача зависит от указанной архитектуры (например, обнаружение и классификация объектов для CNN, генерация текста для RNN). Жизнь экземпляра sod_cnn проходит примерно так:
- Получите новый дескриптор sod_cnn с помощью sod_cnn_create(). Эта подпрограмма предполагает, что вы укажете желаемую архитектуру сети и файл веса SOD, который можно загрузить здесь. Встроенные волшебные слова , такие как :face :tiny :full :voc :rnn и т. д. являются псевдонимами для предварительно готовых к использованию архитектур CNN или RNN для обнаружения объектов и генерации текста целей.
Эти волшебные слова и их файлы ожидаемого веса SOD задокументированы здесь. Эта подпрограмма часто является первым вызовом API, который делает приложение, и является необходимым условием для работы со слоем CNN/RNN.
- При необходимости, , настройте сеть с помощью sod_cnn_config(), где вы можете настроить ее параметры, указать обратный вызов потребителя RNN, пороговые значения обнаружения, температуры и т. д.
- Подготовьте входные данные для прогнозирования. Этот шаг является обязательным только для задач обнаружения объектов и выполняется через sod_cnn_prepare_image().
- Выполнить предсказание сети через sod_cnn_predict().
- Потребляйте сетевой вывод , которые различаются в зависимости от указанной архитектуры (например, ограничивающие рамки , сгенерированный текст/код и т. д.). Вам предлагается ознакомиться с вводным курсом для получения дополнительной информации.
- Уничтожить экземпляр sod_cnn с помощью sod_cnn_destroy().
• sod_realnet
typedef struct sod_realnet sod_realnet;
RealNets — это простой контейнер для архитектуры нескольких нейронных сетей и были представлены публике в первом выпуске SOD. Используя преимущества каждой сетевой архитектуры, поскольку большинство из них специализированы (например, CNN для классификации объектов, ANN для извлечения шаблонов и т. д.) и накладывая одну сеть поверх другой, можно добиться потрясающих результатов. Например, обнаружение и извлечение форм лица никогда не было таким простым и быстрым (несколько миллисекунд) благодаря объединению в контейнере RealNets набора деревьев решений и простой искусственной нейронной сети. Жизнь экземпляра sod_realnet проходит примерно так:
- Получите новый дескриптор sod_realnet с помощью sod_realnet_create(). Эта подпрограмма часто является первым вызовом API, который делает приложение, и является необходимым условием для работы с уровнем RealNets.
- Зарегистрируйте одну или несколько моделей RealNets с помощью sod_realnet_load_model_from_disk() или sod_realnet_load_model_from_mem(). Вы уже можете полагаться на предварительно обученные модели, доступные для загрузки с сайта pixlab.io/downloads, или обучать свои собственные модели RealNets на своем ЦП через обучающие интерфейсы.
- При необходимости настройте свои модели с помощью sod_realnet_model_config(), где вы можете настроить такие параметры, как пороговые значения обнаружения, минимальный и максимальный размер окна, масштаб и коэффициенты шага и т. д.
- Дополнительно , подготовьте входной объект sod_img в градациях серого, содержащий целевое изображение или видеокадр, для обнаружения с помощью sod_image_to_blob().
- Выполнить обнаружение в реальном времени с помощью sod_realnet_detect().
- Потребляйте сетевой вывод , который возвращается в виде массива ограничивающих рамок через экземпляр sod_box.
Вам предлагается ознакомиться с вводным курсом для получения дополнительной информации.
- Наконец, освободите дескриптор sod_realnet с помощью sod_realnet_destroy().
Обратите внимание, что сети RealNet предназначены для анализа и извлечения полезной информации из видеопотока, а не из статических изображений, благодаря высокой скорости обработки (менее 10 миллисекунд для потока HD 1920*1080) и низкому объему памяти, что делает их пригодными для использования на мобильных устройствах. . Вам рекомендуется подключить API-интерфейсы RealNets к интерфейсам захвата видео OpenCV или любому проприетарному API-интерфейсу захвата видео, чтобы увидеть их в действии.
• sod_img
typedef struct sod_img sod_img; структура sod_img { инт ч; /* Высота изображения/кадра */ инт ш; /* Ширина изображения/кадра */ интервал с; /* Глубина изображения/Общее количество цветовых каналов, например. 1 для изображений в градациях серого, 3 RGB и т. д. */ плавающие *данные; /* Блоб */ };
Внутренне каждое представление входного изображения или видеокадра в памяти хранится в экземпляре структуры sod_img. По сути, sod_img — это просто запись из ширина , высота и количество цветовых каналов в изображении, а также значения пикселей для каждого пикселя. Пиксели изображений располагаются в формате CHW . Это означает, что в 3-канальном изображении шириной 400 и высотой 300 первые 400 значений являются 1-й строкой 1-го канала изображения. Вторые 400 пикселей — это 2-я строка. после 120 000 значений мы получаем пиксели во 2-м канале и так далее.
Практически все экспортированные интерфейсы имеют дело с экземпляром sod_img и более 70 интерфейсов обеспечивают расширенные процедуры обработки изображений/кадров. К ним относятся sod_canny_edge_image(), sod_hilditch_thin_image(), sod_hough_lines_detect().
, sod_image_find_blobs(), sod_otsu_binarize_image(), sod_crop_image(), sod_resize_image(), sod_dilate_image(), sod_image_draw_bbox() и так далее. Вам предлагается ознакомиться со списком интерфейсов обработки изображений для их полной документации.
Sod_img можно загрузить с диска с помощью sod_img_load_from_file(), из памяти (т. е. сетевого сокета) с помощью sod_img_load_from_mem() или динамически создать с помощью sod_make_image(). Предоставляется директива времени компиляции OpenCV, которая поможет вам интегрировать OpenCV с SOD. Когда этот параметр включен, такие примитивы, как sod_img_load_cv_ipl(), sod_img_load_from_cv_stream() и т. д., доступны для вызова. Это позволит вам записывать видеокадры из внешних источников, таких как ваша веб-камера, система видеонаблюдения и т. д., и конвертировать их обратно в рабочий экземпляр sod_img.
Необработанными значениями пикселей можно управлять через набор общедоступных интерфейсов, таких как sod_img_add_pixel(), sod_img_get_pixel(), sod_img_set_pixel() и т. д., или напрямую с помощью элемента-указателя data этой структуры. В этом случае вы должны быть осторожны с местоположением целевого пикселя, которое должно находиться в диапазоне, в отличие от открытых общедоступных интерфейсов, которые позаботятся о проверке местоположения диапазона для вас.
• sod_box
typedef struct sod_box sod_box; структура sod_box { интервал х; /* Координата x левого верхнего угла прямоугольника */ инт у; /* Координата y левого верхнего угла прямоугольника */ инт ш; /* Ширина прямоугольника */ инт ч; /* Высота прямоугольника */ плавающий счет; /* Порог достоверности. Значение между 0..1 */ константный символ *zName; /* Имя обнаруженного объекта. т.е. человек, лицо, собака, машина, самолет, кошка, велосипед и т. д. */ недействительными *pUserData; /* Внешний указатель, используемый некоторыми модулями, например ориентирами лица, классификатором NSFW, оценщиком позы и т. д. */ };
Ограничивающая рамка или сокращенно bbox представлена экземпляром структуры sod_box. Экземпляр sod_box всегда хранит координаты прямоугольника, полученные в результате предыдущего успешного вызова одной из процедур обнаружения объектов дескриптора sod_cnn или sod_realnet, таких как sod_cnn_predict(), или из интерфейса маркировки подключенных компонентов sod_image_find_blobs(). Помимо координат прямоугольника, поля zName и score этой структуры содержат полезную информацию об объекте, который он окружает.
Наконец, интерфейсы рисования sod_image_draw_bbox(), sod_image_draw_bbox_width(), sod_image_draw_box(), sod_image_draw_box_grayscale() или sod_crop_image() позволяют вам рисовать/извлекать прямоугольник на/из входного изображения, используя координаты sod_box.
• sod_pts
typedef struct sod_pts sod_pts; структура sod_pts { интервал х; /* Координата x в логических единицах смещения точки. */ инт у; /* Координата y в логических единицах смещения точки. */ };
Экземпляр структуры sod_pts описывает двухмерную точку в пространстве с целочисленными координатами (обычно отсчитываемыми от нуля). SOD редко манипулирует этой структурой и в основном используется интерфейсом обнаружения линий Hough sod_hough_lines_detect() и подпрограммой рисования линий sod_image_draw_line().
• sod_realnet_trainer
typedef struct sod_realnet_trainer sod_realnet_trainer;
Экземпляр sod_realnet_trainer используется для обучения моделей RealNet на современном ЦП. Жизнь этой ручки проходит следующим образом:
- Подготовьте набор данных (положительные, отрицательные и тестовые образцы), например, для стандартной цели обнаружения объектов.
- Выделите и инициализируйте новый экземпляр sod_realnet_trainer с помощью sod_realnet_train_init().
- Настройте этот экземпляр с помощью sod_realnet_train_config(), указав обратный вызов потребителя журнала и путь, по которому должна храниться выходная модель RealNet.
- Запустите фазу обучения с помощью sod_realnet_train_start() и передайте свои инструкции по обучению (т. е. где находится набор данных, минимальная глубина дерева и т. д.).
- Наконец, в зависимости от размера вашего набора данных, подождите несколько дней, пока не завершится обучение, и выпустите этот экземпляр с помощью sod_realnet_train_release().

• sod_realnet_model_handle
typedef unsigned int sod_realnet_model_handle;
Поскольку Realnets — это просто контейнер для различных архитектур нейронных сетей, каждой загруженной и зарегистрированной сети присваивается уникальный идентификатор, возвращаемый вызовами sod_realnet_load_model_from_mem() или sod_realnet_load_model_from_disk(). Имея это в руках, вы можете настроить свою сеть с помощью sod_realnet_model_config(), передав идентификатор дескриптора, который однозначно идентифицирует целевую сеть для настройки.
Директивы времени компиляции
Для большинства целей SOD можно собрать с помощью опций компиляции по умолчанию. Однако при необходимости параметры времени компиляции, задокументированные ниже, можно использовать для исключения функций SOD, таких как слой CNN/RNN, которые потребляют много памяти, или для интеграции SOD с другими библиотеками, такими как OpenCV. Были приложены все усилия, чтобы различные комбинации параметров компиляции работали гармонично и создавали работающую библиотеку.
• SOD_ENABLE_OPENCV
Если эта директива определена, встроенные интерфейсы интеграции OpenCV , такие как sod_img_load_cv_ipl(), sod_img_load_from_cv(), sod_img_load_from_cv_stream(), sod_img_fill_from_cv_stream(), sod_img_save_to_cv_jpg() включены в сборку 7. В этом случае вам необходимо связать свой код с OpenCV и соответствующим образом настроить пути включения OpenCV.
• SOD_DISABLE_IMG_READER
Если эта директива определена, все встроенные интерфейсы чтения изображений , такие как sod_img_load_from_file(), sod_img_load_from_mem(), sod_img_set_load_from_directory() и т. д. исключены из сборки . В этом случае вам придется полагаться на свой собственный код для чтения изображений из внешних источников и преобразования их обратно в работающий объект sod_img.
• SOD_DISABLE_IMG_WRITER
Если эта директива определена, все встроенные интерфейсы записи изображений , такие как sod_img_save_as_png() или sod_img_blob_save_as_png() равны исключен из сборки . В этом случае вам придется полагаться на свой собственный код (взгляните на интерфейсы интеграции OpenCV), чтобы записать объект sod_img обратно во внешний источник.
• SOD_DISABLE_CNN
Если эта директива определена, весь уровень CNN/RNN и его экспортированные интерфейсы, такие как sod_cnn_create(), sod_cnn_predict() и т. д., полностью исключаются из сборки . Вы знаете, что CNN — это памяти и процессора.0047 . Самая маленькая модель обнаружения CNN потребляет около 75 ~ 160 МБ ОЗУ, в отличие от архитектуры RealNet, которая эффективно использует память. В некоторых случаях, когда ресурсы ограничены, эта директива представляет особый интерес, если вам нужна небольшая библиотека.
• SOD_ENABLE_NET_TRAIN
Если эта директива определена, обучающие интерфейсы RealNet включены в сборку . Вы сможете обучать свои собственные модели RealNet на ЦП , используя всего несколько звонков и набор обучающих данных. Учебные интерфейсы RealNets задокументированы здесь.
Справочник по API C/C++ — встроенный SOD
Справочник API C/C++
StarFollow @symisc
На этой странице определяется интерфейс языка C для SOD. Это не учебник. Документация по API предназначена для обеспечения точности. Не легко читать. Для ознакомления с учебным пособием см.:
- Руководство по началу работы — краткое введение в программирование с помощью SOD Embedded C/C++ API.
- Образцы кода C/C++ доступны для ознакомления на странице примеров и загружаются в виде целого архива со страницы загрузки или из репозитория SOD GitHub.
- Наконец, загляните на страницу поддержки, если у вас возникли проблемы с интеграцией SOD в ваш проект.
Эта версия справочника по интерфейсу на языке C разбита на небольшие страницы для удобства просмотра.
Экспортированные объекты
Это список всех абстрактных объектов и типов данных, экспортируемых и управляемых SOD:
- sod_cnn
- дерн_реалнет
- sod_img
- sod_box
- sod_pts
- дерн_realnet_trainer
- дерн_realnet_model_handle
Директивы времени компиляции
Директивы времени компиляции для опустить/включить функции не предусмотрен в сборке по умолчанию:
- SOD_DISABLE_IMG_READER
- SOD_DISABLE_IMG_WRITER
- SOD_DISABLE_CNN
- SOD_ENABLE_NET_TRAIN
- SOD_ENABLE_OPENCV
Экспортированные функции
SOD API разбит на пять независимых категорий:
- Сверточные/рекуррентные нейронные сети (CNN/RNN)
- Контейнер RealNets
- Манипуляция и обработка изображений
- Дополнительно (время компиляции) Интерфейсы интеграции OpenCV
- Дополнительно (время компиляции) Обучающие интерфейсы модели RealNets
Экспортированные функции C/C++
Интерфейсы CNN/RNN
- sod_cnn_create
- sod_cnn_config
- sod_cnn_predict
- дерн_cnn_destroy
- sod_cnn_prepare_image
- sod_cnn_get_network_size
Обучающие интерфейсы CNN/RNN
- SOD Обучение CNN/RNN
Интерфейсы RealNets
- sod_realnet_create
- дерн_realnet_load_model_from_mem
- sod_realnet_load_model_from_disk
- дерн_realnet_model_config
- sod_realnet_detect
- дерн_realnet_destroy
Учебные интерфейсы RealNets
- sod_realnet_train_init
- sod_realnet_train_config
- дерн_realnet_train_start
- дерн_realnet_train_release
Интерфейсы обработки изображений/кадров
- sod_hilditch_thin_image
- sod_minutiae
- дерн_canny_edge_image
- sod_sobel_image
- дерн_hough_lines_detect
- дерн_hough_lines_release
- дерн_image_find_blobs
- sod_image_blob_boxes_release
- sod_otsu_binarize_image
- sod_binarize_image
- sod_threshold_image
- sod_dilate_image
- дерн_erode_image
- дерн_серого_изображения
- дерн_серого_изображения_3c
- дерн_гауссовский_шум_уменьшить
- дерн_эквалайзер_гистограмма
- дерн_composite_image
- дерн_флип_изображение
- дерн_изображение_расстояние
- дерн_embed_image
- sod_sharpen_filtering_image
- дерн_rotate_crop_image
- sod_image_draw_box
- дерн_изображение_draw_box_grayscale
- sod_image_draw_bbox
- sod_image_draw_bbox_width
- дерн_image_draw_line
- дерн_image_draw_circle
- дерн_изображение_draw_circle_thickness
- sod_resize_image
- дерн_ресайз_макс
- sod_resize_min
- дерн_random_crop_image
- дерн_random_augment_image
- sod_translate_image
- дерн_масштаб_изображение
- дерн_blend_image
- дерн_масштаб_изображения_канал
- sod_translate_image_channel
- дерн_normalize_image
- sod_transpose_image
- дерн_rotate_image
- дерн_кроп_изображение
Интерфейсы доступа и преобразования необработанных пикселей
- sod_img_get_pixel
- дерн_img_set_pixel
- дерн_img_add_pixel
- дерн_img_get_layer
- sod_img_rgb_to_hsv
- sod_img_hsv_to_rgb
- sod_img_rgb_to_bgr
- sod_img_bgr_to_rgb
- sod_img_yuv_to_rgb
- sod_img_rgb_to_yuv
Интерфейсы создания образов и загрузки/сохранения больших двоичных объектов
- sod_copy_image
- sod_free_image
- sod_img_load_from_file
- дерн_img_load_from_mem
- sod_img_set_load_from_directory
- sod_img_set_release
- sod_img_save_as_png
- sod_img_save_as_jpeg
- sod_image_to_blob
- дерн_изображение_free_blob
- дерн_img_blob_save_as_png
- sod_img_blob_save_as_jpeg
- sod_img_blob_save_as_bmp
- дерн_img_load_color
- дерн_img_load_grayscale
- дерн_make_empty_image
- дерн_make_image
- дерн_make_random_image
Интерфейсы интеграции OpenCV
- sod_img_load_cv_ipl
- дерн_img_load_from_cv
- дерн_img_load_from_cv_stream
- дерн_img_fill_from_cv_stream
- sod_img_save_to_cv_jpg
Разное
- sod_lib_copyright
Экспортированные объекты C/C++
Это список всех абстрактных объектов и типов данных, экспортируемых библиотекой SOD. Объектов немного, но большинство приложений используют лишь несколько.
• sod_cnn
typedef struct sod_cnn sod_cnn;
Экземпляр непрозрачной структуры sod_cnn содержит все слои стандартной сверточной нейронной сети ( CNN ) или рекуррентной нейронной сети ( RNN ). Синтаксис основан на платформе даркнета, а задача зависит от указанной архитектуры (например, обнаружение и классификация объектов для CNN, генерация текста для RNN). Жизнь экземпляра sod_cnn проходит примерно так:
- Получите новый дескриптор sod_cnn с помощью sod_cnn_create(). Эта подпрограмма предполагает, что вы укажете желаемую архитектуру сети и файл веса SOD, который можно загрузить здесь. Встроенные волшебные слова , такие как :face :tiny :full :voc :rnn и т. д. являются псевдонимами для предварительно готовых к использованию архитектур CNN или RNN для обнаружения объектов и генерации текста целей.
Эти волшебные слова и их файлы ожидаемого веса SOD задокументированы здесь. Эта подпрограмма часто является первым вызовом API, который делает приложение, и является необходимым условием для работы со слоем CNN/RNN.
- При необходимости, , настройте сеть с помощью sod_cnn_config(), где вы можете настроить ее параметры, указать обратный вызов потребителя RNN, пороговые значения обнаружения, температуры и т. д.
- Подготовьте входные данные для прогнозирования. Этот шаг является обязательным только для задач обнаружения объектов и выполняется через sod_cnn_prepare_image().
- Выполнить предсказание сети через sod_cnn_predict().
- Потребляйте сетевой вывод , которые различаются в зависимости от указанной архитектуры (например, ограничивающие рамки , сгенерированный текст/код и т. д.). Вам предлагается ознакомиться с вводным курсом для получения дополнительной информации.
- Уничтожить экземпляр sod_cnn с помощью sod_cnn_destroy().
• sod_realnet
typedef struct sod_realnet sod_realnet;
RealNets — это простой контейнер для архитектуры нескольких нейронных сетей и были представлены публике в первом выпуске SOD. Используя преимущества каждой сетевой архитектуры, поскольку большинство из них специализированы (например, CNN для классификации объектов, ANN для извлечения шаблонов и т. д.) и накладывая одну сеть поверх другой, можно добиться потрясающих результатов. Например, обнаружение и извлечение форм лица никогда не было таким простым и быстрым (несколько миллисекунд) благодаря объединению в контейнере RealNets набора деревьев решений и простой искусственной нейронной сети. Жизнь экземпляра sod_realnet проходит примерно так:
- Получите новый дескриптор sod_realnet с помощью sod_realnet_create(). Эта подпрограмма часто является первым вызовом API, который делает приложение, и является необходимым условием для работы с уровнем RealNets.
- Зарегистрируйте одну или несколько моделей RealNets с помощью sod_realnet_load_model_from_disk() или sod_realnet_load_model_from_mem(). Вы уже можете полагаться на предварительно обученные модели, доступные для загрузки с сайта pixlab.io/downloads, или обучать свои собственные модели RealNets на своем ЦП через обучающие интерфейсы.
- При необходимости настройте свои модели с помощью sod_realnet_model_config(), где вы можете настроить такие параметры, как пороговые значения обнаружения, минимальный и максимальный размер окна, масштаб и коэффициенты шага и т. д.
- Дополнительно , подготовьте входной объект sod_img в градациях серого, содержащий целевое изображение или видеокадр, для обнаружения с помощью sod_image_to_blob().
- Выполнить обнаружение в реальном времени с помощью sod_realnet_detect().
- Потребляйте сетевой вывод , который возвращается в виде массива ограничивающих рамок через экземпляр sod_box.
Вам предлагается ознакомиться с вводным курсом для получения дополнительной информации.
- Наконец, освободите дескриптор sod_realnet с помощью sod_realnet_destroy().
Обратите внимание, что сети RealNet предназначены для анализа и извлечения полезной информации из видеопотока, а не из статических изображений, благодаря высокой скорости обработки (менее 10 миллисекунд для потока HD 1920*1080) и низкому объему памяти, что делает их пригодными для использования на мобильных устройствах. . Вам рекомендуется подключить API-интерфейсы RealNets к интерфейсам захвата видео OpenCV или любому проприетарному API-интерфейсу захвата видео, чтобы увидеть их в действии.
• sod_img
typedef struct sod_img sod_img; структура sod_img { инт ч; /* Высота изображения/кадра */ инт ш; /* Ширина изображения/кадра */ интервал с; /* Глубина изображения/Общее количество цветовых каналов, например. 1 для изображений в градациях серого, 3 RGB и т. д. */ плавающие *данные; /* Блоб */ };
Внутренне каждое представление входного изображения или видеокадра в памяти хранится в экземпляре структуры sod_img. По сути, sod_img — это просто запись из ширина , высота и количество цветовых каналов в изображении, а также значения пикселей для каждого пикселя. Пиксели изображений располагаются в формате CHW . Это означает, что в 3-канальном изображении шириной 400 и высотой 300 первые 400 значений являются 1-й строкой 1-го канала изображения. Вторые 400 пикселей — это 2-я строка. после 120 000 значений мы получаем пиксели во 2-м канале и так далее.
Практически все экспортированные интерфейсы имеют дело с экземпляром sod_img и более 70 интерфейсов обеспечивают расширенные процедуры обработки изображений/кадров. К ним относятся sod_canny_edge_image(), sod_hilditch_thin_image(), sod_hough_lines_detect().
, sod_image_find_blobs(), sod_otsu_binarize_image(), sod_crop_image(), sod_resize_image(), sod_dilate_image(), sod_image_draw_bbox() и так далее. Вам предлагается ознакомиться со списком интерфейсов обработки изображений для их полной документации.
Sod_img можно загрузить с диска с помощью sod_img_load_from_file(), из памяти (т. е. сетевого сокета) с помощью sod_img_load_from_mem() или динамически создать с помощью sod_make_image(). Предоставляется директива времени компиляции OpenCV, которая поможет вам интегрировать OpenCV с SOD. Когда этот параметр включен, такие примитивы, как sod_img_load_cv_ipl(), sod_img_load_from_cv_stream() и т. д., доступны для вызова. Это позволит вам записывать видеокадры из внешних источников, таких как ваша веб-камера, система видеонаблюдения и т. д., и конвертировать их обратно в рабочий экземпляр sod_img.
Необработанными значениями пикселей можно управлять через набор общедоступных интерфейсов, таких как sod_img_add_pixel(), sod_img_get_pixel(), sod_img_set_pixel() и т. д., или напрямую с помощью элемента-указателя data этой структуры. В этом случае вы должны быть осторожны с местоположением целевого пикселя, которое должно находиться в диапазоне, в отличие от открытых общедоступных интерфейсов, которые позаботятся о проверке местоположения диапазона для вас.
• sod_box
typedef struct sod_box sod_box; структура sod_box { интервал х; /* Координата x левого верхнего угла прямоугольника */ инт у; /* Координата y левого верхнего угла прямоугольника */ инт ш; /* Ширина прямоугольника */ инт ч; /* Высота прямоугольника */ плавающий счет; /* Порог достоверности. Значение между 0..1 */ константный символ *zName; /* Имя обнаруженного объекта. т.е. человек, лицо, собака, машина, самолет, кошка, велосипед и т. д. */ недействительными *pUserData; /* Внешний указатель, используемый некоторыми модулями, например ориентирами лица, классификатором NSFW, оценщиком позы и т. д. */ };
Ограничивающая рамка или сокращенно bbox представлена экземпляром структуры sod_box. Экземпляр sod_box всегда хранит координаты прямоугольника, полученные в результате предыдущего успешного вызова одной из процедур обнаружения объектов дескриптора sod_cnn или sod_realnet, таких как sod_cnn_predict(), или из интерфейса маркировки подключенных компонентов sod_image_find_blobs(). Помимо координат прямоугольника, поля zName и score этой структуры содержат полезную информацию об объекте, который он окружает.
Наконец, интерфейсы рисования sod_image_draw_bbox(), sod_image_draw_bbox_width(), sod_image_draw_box(), sod_image_draw_box_grayscale() или sod_crop_image() позволяют вам рисовать/извлекать прямоугольник на/из входного изображения, используя координаты sod_box.
• sod_pts
typedef struct sod_pts sod_pts; структура sod_pts { интервал х; /* Координата x в логических единицах смещения точки. */ инт у; /* Координата y в логических единицах смещения точки. */ };
Экземпляр структуры sod_pts описывает двухмерную точку в пространстве с целочисленными координатами (обычно отсчитываемыми от нуля). SOD редко манипулирует этой структурой и в основном используется интерфейсом обнаружения линий Hough sod_hough_lines_detect() и подпрограммой рисования линий sod_image_draw_line().
• sod_realnet_trainer
typedef struct sod_realnet_trainer sod_realnet_trainer;
Экземпляр sod_realnet_trainer используется для обучения моделей RealNet на современном ЦП. Жизнь этой ручки проходит следующим образом:
- Подготовьте набор данных (положительные, отрицательные и тестовые образцы), например, для стандартной цели обнаружения объектов.
- Выделите и инициализируйте новый экземпляр sod_realnet_trainer с помощью sod_realnet_train_init().
- Настройте этот экземпляр с помощью sod_realnet_train_config(), указав обратный вызов потребителя журнала и путь, по которому должна храниться выходная модель RealNet.
- Запустите фазу обучения с помощью sod_realnet_train_start() и передайте свои инструкции по обучению (т. е. где находится набор данных, минимальная глубина дерева и т. д.).
- Наконец, в зависимости от размера вашего набора данных, подождите несколько дней, пока не завершится обучение, и выпустите этот экземпляр с помощью sod_realnet_train_release().

• sod_realnet_model_handle
typedef unsigned int sod_realnet_model_handle;
Поскольку Realnets — это просто контейнер для различных архитектур нейронных сетей, каждой загруженной и зарегистрированной сети присваивается уникальный идентификатор, возвращаемый вызовами sod_realnet_load_model_from_mem() или sod_realnet_load_model_from_disk(). Имея это в руках, вы можете настроить свою сеть с помощью sod_realnet_model_config(), передав идентификатор дескриптора, который однозначно идентифицирует целевую сеть для настройки.
Директивы времени компиляции
Для большинства целей SOD можно собрать с помощью опций компиляции по умолчанию. Однако при необходимости параметры времени компиляции, задокументированные ниже, можно использовать для исключения функций SOD, таких как слой CNN/RNN, которые потребляют много памяти, или для интеграции SOD с другими библиотеками, такими как OpenCV. Были приложены все усилия, чтобы различные комбинации параметров компиляции работали гармонично и создавали работающую библиотеку.
• SOD_ENABLE_OPENCV
Если эта директива определена, встроенные интерфейсы интеграции OpenCV , такие как sod_img_load_cv_ipl(), sod_img_load_from_cv(), sod_img_load_from_cv_stream(), sod_img_fill_from_cv_stream(), sod_img_save_to_cv_jpg() включены в сборку 7. В этом случае вам необходимо связать свой код с OpenCV и соответствующим образом настроить пути включения OpenCV.
• SOD_DISABLE_IMG_READER
Если эта директива определена, все встроенные интерфейсы чтения изображений , такие как sod_img_load_from_file(), sod_img_load_from_mem(), sod_img_set_load_from_directory() и т. д. исключены из сборки . В этом случае вам придется полагаться на свой собственный код для чтения изображений из внешних источников и преобразования их обратно в работающий объект sod_img.
• SOD_DISABLE_IMG_WRITER
Если эта директива определена, все встроенные интерфейсы записи изображений , такие как sod_img_save_as_png() или sod_img_blob_save_as_png() равны исключен из сборки .