Методология обеспечения безопасности труда персонала при перевозке пассажиров машинами на канатной тяге тема диссертации и автореферата по ВАК РФ 00.00.00, доктор наук Панфилов Алексей Викторович
- Специальность ВАК РФ00.00.00
- Количество страниц 745
Оглавление диссертации доктор наук Панфилов Алексей Викторович
Введение
1 Методология обеспечения безопасности персонала и пассажиров при эксплуатации машин с канатной тягой
1.1 Статистический анализ аварийности на лифтовых системах
1.2 Статистический анализ аварийности на канатных дорогах
1.3 Методология безопасности персонала и пассажиров при эксплуатации машин с канатной тягой
1.4 Особенности проведения анализа риска для МКТ
1.5 Выводы по первой главе диссертации
2 Использованием образовательных нейросетевых технологий для снижения влияния человеческого фактора персонала на безопасность пассажиров при эксплуатации МКТ
2.1 Нормативно-правовая база подготовки персонала, оценки квалификации и допуска к работе на МКТ
2.2 О работе центра оценки квалификации персонала по ЛС и КД
2.3 Использование образовательных нейросетевых технологий для оценки компетенций персонала
2.4 Выводы по второй главе диссертации
3 Инновационные конструкции канатного метро с системами резервирования для обеспечения безопасности труда персонала при перевозке пассажиров
3.1 Технические, технологические и организационные мероприятия по обеспечению безопасности персонала при перевозке пассажиров
3.2 Способы эвакуации пассажиров при аварийных ситуациях
3.3 Обеспечение безопасности персонала и пассажиров за счет использования функции постоянного резервирования
3.4 Инновационные конструкции канатного метро для перевозки пассажиров в урбанизированной среде
3.5 Выводы по третьей главе диссертации
4 Обеспечение безопасности персонала при перевозке пассажиров МКТ, связанной с риском образования дефектов в стальных канатах
4.1 Анализ существующей проблемы, связанной с риском образования дефектов в стальных канатах
4.2 Использование видеоаналитики для анализа геометрических характеристик стального каната
4.3 Использование нейронных сетей для прогнозирования дефектов стальных канатов
4.4 Использование 3-0 принтера для создания физической модели
4.5 Практические результаты, обеспечивающие работоспособность стального каната
4.6 Выводы по четвертой главе диссертации
5 Инновационные методы повышения безопасности труда персонала путем мониторинга стальных канатов для риск-ориентированного подхода
5.1 Существующие методы мониторинга стальных канатов по обнаружению дефектов
5.2 Мониторинг стальных канатов на основе компьютерного зрения
5.3 Алгоритмы математического обеспечения в задачах обнаружения и классификации дефектов стального каната
5.4 База данных для обучения нейросетевых моделей обнаружения типовых дефектов в стальных канатах
5.5 Интегральная оценка технического состояния стального каната как интеллектуальная система поддержки принятия решений
5.6 Тестирование программного обеспечения программно-аппаратного комплекса в лабораторных условиях
5.7 Описание лабораторного испытательного оборудования
5.8 Испытания в реальных условиях эксплуатации
5.9 Выводы по пятой главе диссертации:
Заключение
Список сокращений и условных обозначений
Литература, в которой изложены основные положения научно-квалификационной работы по теме диссертации
ПРИЛОЖЕНИЯ том второй
Содержание
1 Приложение А. АКТ о практическом применении полученных результатов диссертационного исследования Панфилова А.В. на тему «Методология обеспечения безопасности труда персонала при перевозке пассажиров машинами на канатной тяге-, одобренный Советом по профессиональным компетенциям (СПК) в лифтовой отрасли, сфере подъемных сооружений и вертикального транспорта
2 Приложение Б. Копия письма от НО Фонд «Сколково- «О прохождении компанией ООО «ИКЦ «Мысль- программы акселерации проекта «Разработка программно-аппаратного комплекса автоматизированного визуально-измерительного контроля стальных канатов на основе технологий компьютерного зрения-. Копия сертификата, подтверждающего, что проект «ПАК ВИК- ООО «ИКЦ «Мысль- успешно завершил консультационную программу для потенциальных участников проекта «Сколково- по направлению деятельности Фонда «Стратегические компьютерные технологии и программное обеспечение-
3 Приложение В. Скриншот из реестра НОК - Свидетельства. Скриншот из реестра НОК - Заключения
4 Приложение Г. Копия свидетельства о государственной регистрации программы для ЭВМ №2020616847 от 23.06.2020 г. «Программа «ЬШ§иги- для подготовки технической документации аккредитованной испытательной лаборатории по результатам оценки соответствия лифтов- Копия сертификата соответствия на Программное обеспечение «ЫА^иги- для подготовки технической документации аккредитованной испытательной лаборатории по результатам оценки соответствия лифтов (ПО «Ш§иги>>) № РОСС ЯИ С-Ш.НР15.Н07848/20 срок действия с 1.11.2020 до
5 Приложение Д. Проект профессионального стандарта «Специалист по технической диагностике пассажирских канатных дорог и фуникулеров-
6 Приложение Е. Проект профессионального стандарта «Специалист по ремонту и обслуживанию стальных канатов пассажирских канатных дорог и фуникулеров-
7 Приложение Ж. Доклады Минпромторга России, Федерального агентство по техническому регулированию и метрологии, Министерство строительства и жилищно-коммунального хозяйства Российской Федерации по вопросу: «План мероприятий по совершенствованию требований к подвесным пассажирским
канатным дорогам и оценки их соответствия, утвержденного Заместителем Председателя Правительства Российской Федерации - Министром промышленности и торговли Российской Федерации Д.В. Мантуровым 23 августа 2023 г. № 7533-П9-МД»
8 Приложение И. Проект национального стандарта ГОСТ Р «Подвесные канатные дороги для транспортирования людей. Одноканатные кольцевые дороги. Требования безопасности. Натяжные устройства
9 Приложение К. Проект национального стандарта ГОСТ Р «Подвесные канатные дороги для транспортирования людей. Одноканатные кольцевые дороги. Требования безопасности. Приводы и другое механическое оборудование»
10 Приложение Л. Проект национального стандарта ГОСТ Р «Подвесные канатные дороги для транспортирования людей. Одноканатные кольцевые дороги. Требования безопасности. Принципы расчета нагрузок и их комбинаций»
11 Приложение М. Проект национального стандарта ГОСТ Р «Подвесные канатные дороги для транспортирования людей. Одноканатные кольцевые дороги. Требования безопасности. Электрооборудование»
12 Приложение Н. Проект национального стандарта ГОСТ Р «Подвесные канатные дороги для транспортирования людей. Одноканатные кольцевые дороги. Требования безопасности. Подвижной состав»
13 Приложение П. Проект национального стандарта ГОСТ Р «Подвесные канатные дороги для транспортирования людей. Одноканатные кольцевые дороги. Требования безопасности. Методы испытаний»
ПРИЛОЖЕНИЯ том третий
Содержание
1 Приложение Р. Копия свидетельства о постановке на учет российской организации в налоговом органе по месту ее нахождения ООО «ДГТУ -Инженерные технологии и консалтинг» №261 3007280349 от 8.02 2013 г. (ИНН/КПП 6165179826/616501001)
2 Приложение С. Копия договора об отчуждении патента на изобретение «Развлекательный учебно-познавательный комплекс» // Короткий А.А., Попиашвили Б.Д., Квеблиани Д.Ш., Короткий Д.А., Панфилов А.В., Короткая Э.А. Патент на изобретение RU 2418928 C1, 20.05.2011. Заявка № 2010106641/03 от 24.02.2010 реализован и внедрен в 2013 г. в Геленджике, Краснодарского края в ООО «Сафари парк» https: //www.safari-park.ru
3 Приложение Т. Экспертное заключение экспертного совета по программному обеспечению при Министерстве цифрового развития, связи и массовых коммуникаций Российской Федерации на программного обеспечения: Видеопотоки типовых дефектов стальных канатов. Сведения, содержащиеся в
записи о программном обеспечении, включенном в реестр российского программного обеспечения
4 Приложение У. Функциональная схема методологии обеспечения безопасности МКТ
5 Приложение Ф. Интенсивность отказов конструктивных элементов узлов и механизмов, используемых при резервировании КД
6 Приложение Х. Функциональная схема ПАК ВИК стального каната, уравновешивающих устройств и мест заделок их концов на основе технологий компьютерного зрения и искусственного интеллекта для ЛС
7 Приложение Ц. Алгоритм и программное обеспечение по автоматическому обнаружению дефектов геометрии канатов (ПО ОДГК)
8 Приложение Ч. Функциональная схема метода визуально-измерительного контроля стального каната
9 Приложение Ш. Общая схема программно-аппаратного комплекса визуально - измерительного контроля стальных канатов
10 Приложение Щ. Структурная схема программного обеспечения по автоматическому обнаружению и классификации дефектов стальных канатов и их заделок ПО АОКД ПАК ВИК
11 Приложение Э. Программа и методика испытаний (тестирования) программного обеспечения по автоматическому обнаружению и классификации дефектов канатов с использованием ПАК ВИК
12 Приложение Ю. Программа и методика тестирования, отладки и испытания опытных образцов ПАК ВИК в реальных условиях эксплуатации
13 Приложение Я. Паспорт. Испытательная установка для ПАК ВИК
14 Приложение 1. Руководство по эксплуатации. Испытательная установка для ПАК ВИК
15 Приложение 2. Паспорт. Аппаратная часть ПАК ВИК
16 Приложение 3. Руководство по эксплуатации. Аппаратная часть ПАК ВИК
17 Приложение 4. Протокол предварительных испытаний (тестирования) программного обеспечения по автоматическому обнаружению и классификации дефектов канатов с использованием ПАК ВИК
18 Приложение 5. Протокол тестирования, отладки и испытания опытных образцов ПАК ВИК в реальных условиях эксплуатации
Введение
Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Оценка и нормирование опасных и вредных факторов при производстве счалки стальных канатов для машин, использующих канатную тягу2020 год, кандидат наук Марченко Эдвард Викторович
Обоснование безопасных условий труда персонала пассажирского канатного транспорта при проектировании2016 год, кандидат наук Панфилов, Алексей Викторович
Электромагнитный метод и средства неразрушающего контроля дефектов стальных канатов2002 год, кандидат технических наук Хаммад Ашраф Мухаммед
Метод расчета несущих закрытых канатов с учетом их кручения и волнистости для подвесных канатных дорог2003 год, кандидат технических наук Сорокина, Елена Владимировна
Повышение безопасности пассажирских канатных дорог на основе оценки риска и резервирования привода2008 год, кандидат технических наук Кинжибалов, Александр Владимирович
Введение диссертации (часть автореферата) на тему «Методология обеспечения безопасности труда персонала при перевозке пассажиров машинами на канатной тяге»
Актуальность избранной темы
Существует класс машин и агрегатов, использующих канатную тягу в технологических и транспортных процессах, эксплуатация которых является критерием отнесения их к опасным, или опасным производственным объектам. К таким машинам относятся лифтовые системы (№170-ФЗ от 14.12.2022 «О внесении изменений в отдельные законодательные акты РФ в связи с принятием ФЗ «О государственном контроле (надзоре) и муниципальном контроле в РФ»), пассажирские и грузовые канатные дороги, шахтные подъемные установки, буровые установки для добычи нефти и газа, грузоподъемные краны, тали, скиповые подъемники, судовые подъемные устройства, канатные механизмы оффшорных платформ, морских трубоукладчиков и др. (№ 116-ФЗ от 21.07.1997 «О промышленной безопасности опасных производственных объектов»).
В данном исследовании рассматриваются машины с канатной тягой (МКТ) двух типов: лифтовые системы (ЛС) как наиболее массовые машины, эксплуатируемые на территории РФ, и канатные дороги (КД), которые используются для перевозки пассажиров (№ 442-ФЗ от 29.12.2017 «О внеуличном транспорте и о внесении изменений в отдельные законодательные акты Российской Федерации»). Приказом Министерства транспорта РФ от 11 июня 2021 г. №185 «Об утверждении критериев отнесения подвесных канатных дорог и объектов инфраструктуры внеуличного транспорта к потенциально опасным объектам» канатные дороги для городской инфраструктуры отнесены к объектам высшей (первой) категории опасности. При эксплуатации МКТ, которые относятся к вертикальному транспорту, предусмотрено обязательное требование к наличию у персонала профессиональной подготовки (Указ Президента РФ от 16.04.2014 г. № 249 «О Национальном совете при Президенте Российской Федерации по профессиональным квалификациям» и приказ Ростехнадзора от 13.11.2020 № 441 «Об утверждении федеральных норм и правил в области промышленной безопасности «Правила безопасности пассажирских канатных дорог и фуникулеров», зарегистрированных в Минюсте России 24.12.2020 № 61764).
Отличительными особенностями ЛС и КД являются: расположение подвижного состава (кабин, гондол, кресел, вагонов) на стальном канате, подвешенном на большой высоте; движение подвижного состава с большой скоростью совместно со стальным канатом; наличие значительного количества пассажиров в подвижном составе; технология перевозки пассажиров предусматривает проведение эвакуационной операции; эксплуатация требует наличие в штате квалифицированных кадров, аттестованных в установленном порядке; выполнение в определенные сроки (ежегодно) регламентных работ в виде технических освидетельствований (ТО) и экспертизы безопасности (ЭБ) с осуществлением расчетных и аналитических процедур оценки и прогнозирования технического состояния, включающие анализ режимов работы, исследование напряженно-деформированного состояния, оценку остаточного ресурса (срока службы); оценку риска при эксплуатации. Работы по оценке риска при эксплуатации предписаны приказом Ростехнадзора от 03.11.2022 № 387 «Об утверждении Руководства по безопасности «Методические основы анализа опасностей и оценки риска аварий на опасных производственных объектах- и приказом от 17.02.2023 № 72 «Об утверждении перечня индикаторов риска нарушения обязательных требований, используемых при осуществлении Федеральной службой по экологическому, технологическому и атомному надзору и её территориальными органами федерального государственного контроля (надзора) в области безопасного использования и содержания лифтов, подъемных платформ для инвалидов, пассажирских конвейеров (движущихся пешеходных дорожек) и эскалаторов, за исключением эскалаторов в метрополитенах-. Однако применение этих документов ограничено спецификой конкретного объекта.
Для ЛС, которые с точки зрения безопасности относятся к опасным объектам, подлежащим сертификации, проведен статистический анализ причин возникновения аварийности, инцидентов, вопросов контроля, диагностики, мониторинга и приборного обеспечения, связанных с техническим состоянием стальных лифтовых канатов. КД относятся к опасным производственным объектам, что накладывает на этот тип машин дополнительные требования, связанные с
обеспечением безопасности при эксплуатации.
Надзор за ЛС в настоящее время осуществляется государственным надзорным органом в лице Ростехнадзора на основании постановления Правительства Российской Федерации от 16.02.2023 № 241 «Об утверждении Положения о федеральном государственном контроле (надзоре) в области безопасного использования и содержания лифтов, подъемных платформ для инвалидов, пассажирских конвейеров (движущихся пешеходных дорожек), эскалаторов, за исключением эскалаторов в метрополитенах-.
На КД, эксплуатирующихся на территории РФ, не распространяются требования технических регламентов и нормы сертификации продукции. Недостатки в нормативно-правовой базе по техническому регулированию не позволяют проектировать, изготавливать и поставлять на рынок новое оборудование, агрегаты, механизмы, узлы и детали, а также запасные части к уже эксплуатирующимся КД на территории РФ, в том числе производить замену изделий, отработавших нормативный срок службы, на машинах иностранного производства. Существующие «пробелы- в нормативно-техническом законодательстве актуальны в период действия экономических санкций.
Указ Президента РФ от 6 мая 2018 г. № 198 «Об Основах государственной политики Российской Федерации в области промышленной безопасности на период до 2025 года и дальнейшую перспективу- определил приоритетные направления государственной политики в области промышленной безопасности, а именно: а) совершенствование нормативно-правового регулирования и государственного управления в области промышленной безопасности; б) разработка и внедрение единых критериев оценки рисков аварий на промышленных объектах и категорирования таких объектов. Основными задачами государственной политики в области промышленной безопасности являются: а) формирование механизмов научно-технической и методологической поддержки государственного регулирования в области промышленной безопасности, обеспечивающих решение задач прогнозирования рисков возникновения аварий; б) научно-техническое обоснование разработки (актуализации) требований к безопасности
технологических процессов; в) внедрение инновационных технологий обеспечения промышленной безопасности; г) внедрение риск-ориентированного подхода при организации федерального государственного контроля (надзора) в области промышленной безопасности; д) разработка нормативно-правовой базы в части, касающейся создания и внедрения системы государственного дистанционного мониторинга состояния промышленной безопасности, предусматривающей автоматизированный сбор, фиксацию, обобщение, систематизацию и оценку информации о значениях параметров технологических процессов на промышленных объектах, в целях определения состояния промышленной безопасности; ж) совершенствование нормативно-правового и методического обеспечения экспертизы промышленной безопасности; з) повышение уровня независимости экспертов и экспертных организаций от заказчиков такой экспертизы; и) совершенствование системы повышения квалификации работников органов государственного контроля (надзора) и работников организаций, осуществляющих деятельность в области промышленной безопасности; к) совершенствование требований к программам подготовки, к аттестации и проверке знаний руководителей и специалистов эксплуатирующих организаций и организаций, осуществляющих обслуживание промышленных объектов; л) развитие методов анализа и оценки рисков возникновения аварий на промышленных объектах; м) развитие и внедрение информационных технологий, позволяющих осуществлять взаимодействие с эксплуатирующими организациями, оптимизировать процесс получения, хранения и анализа информации о производственном контроле за соблюдением требований промышленной безопасности, о системах управления промышленной безопасностью, об авариях и инцидентах на промышленных объектах.
Указом Президента Российской Федерации от 10.10.2019 г. № 490 «О развитии искусственного интеллекта в Российской Федерации» утверждена «Национальная стратегия развития искусственного интеллекта на период до 2030 года», направленная на обеспечение ускоренного развития искусственного интеллекта в РФ, проведение научных исследований в области искусственного интеллекта,
повышение доступности информации и вычислительных ресурсов для пользователей, совершенствование системы подготовки кадров в этой области.
Анализ обеспечения безопасности на ЛС и КД, проведенный в соответствии с вышеуказанными законодательными, нормативно-правовыми актами, паспортом научной специальности 2.10.3. «Безопасность труда-, анализ литературных источников показал недостаточность научных исследований в данной сфере деятельности, несмотря на то обстоятельство, что в РФ эксплуатируется свыше 550 000 грузовых, пассажирских и больничных лифтов (из них около 45 % отработали нормативный срок службы), а также свыше 200 пассажирских подвесных, 550 буксировочных канатных дорог и 5 фуникулеров.
Аварии и инциденты на ЛС, особенно пассажирских, установленных в жилых домах или общественных зданиях, сопровождаются большим резонансом - гибелью пассажиров, в том числе детей. Факты по авариям неблагоприятно отражаются на репутационных рисках производителей ЛС и организациях, занимающихся их техническим обслуживанием, из-за возможных потерь, негативного отношения клиентов, партнёров и инвесторов. При этом за нарушение требований безопасности предусмотрена уголовная ответственность по статье 238 УК РФ, либо административная - по статье 9.1.1. КоАП РФ.
Согласно статистическим данным по аварийности и травматизму на лифтах, за последние пять лет в результате аварий погибли свыше 100 человек, еще больше получили травмы различной степени тяжести, при этом причины технического характера составили около 45 %, из которых более половины связаны с техническим состоянием лифтовых канатов.
Анализ аварийности и травматизма на КД показывает, что не менее 50 % несчастных случаев со смертельным исходом обусловлены выходом из строя основного элемента оборудования - стального каната, а также нарушениями персоналом производственной и технологической дисциплины при эксплуатации, принятием ошибочных решений при возникновении нештатных ситуаций и проведении эвакуационных мероприятий. Установлено, что неблагоприятные события во многом связаны с человеческим фактором персонала, их ограниченными
возможностями адекватного восприятия окружающей среды, в которой эксплуатируется сложные высокотехнологические машины, перевозящие пассажиров.
В связи с вышеизложенным, важной проблемой является обеспечение безопасности персонала, перевозящих пассажиров ЛС и КД в сложных климатических условиях, при возрастании скоростей и высоты перемещения подвижного состава, увеличивающейся загруженности с учетом необходимости принятия ответственных решений в аварийной ситуации и при выполнении эвакуационных операций.
Повышение безопасности при эксплуатации МКТ невозможно без рассмотрения вопроса степени влияния профессионализма, квалификации и ответственности персонала КД и ЛС на уровень аварийности и травматизма. Эта задача частично решается на государственном уровне организацией системы подготовки, аттестации и независимой оценки квалификаций, но без учета применения новых конструкций технических устройств, изменяющейся технологии и организации процессов их эксплуатации и обслуживания.
В связи с этим представляется необходимым пересмотреть состав трудовых функций, действий, знаний и умений, связанных с совершенствованием МКТ, разработать современные методы оценки компетентности персонала на базе новых нормативно-технических документов (ГОСТов, профессиональных стандартов (ПС) и др.).
Очевидно, что научно-техническая проблема обеспечения безопасности персонала при перевозке пассажиров МКТ, имеющая важное народнохозяйственное значение, должна решаться на методологической основе, которая рассматривает вопросы обеспечения объективного контроля технического состояния основного элемента - стального каната, инновационного совершенствования машин, включающего обеспечение эффективных способов эвакуации пассажиров, в том числе повышения квалификационной ответственности персонала. Указанные проблемы должны рассматриваться системно, на методологической основе, с привлечением современных методов
искусственного интеллекта.
В настоящей научно-квалификационной работе рассмотрена научно-техническая проблема обеспечения безопасности персонала при перевозке пассажиров МКТ с использованием рекомендательной системы для лиц, принимающих решение, на основе разработки и совершенствования методов диагностики, мониторинга, взаимодействия с оператором, эффективности технического обслуживания, использования риск-анализа, риск-ориентированного подхода и технологий искусственного интеллекта, повышающих эффективность промышленной безопасности при их эксплуатации.
Вопросами оценки и прогнозирования технического состояния механических систем, а также исследованиями в области методологии безопасности опасных и опасных производственных объектов занимались известные ученые В.В. Болотник, К.В. Фролов, А.И. Дукельский, В.А. Лигасов, В.В. Москвичев, А.М. Лепихин, Н.А. Махутов, О.Н. Русак, В.И. Сидоров, Н.Н. Панасенко, А.С. Печеркин, В.С. Котельников, Е.В. Кловач, А.А. Короткий, А.Н. Чукарин, Ю.И. Булыгин, В.В. Новиков, Г.А. Емельянов, Н.И. Баурова и др.; широко известны работы по рискам Х. Кумамото, В. Маршала, Э.Д. Хенли, Э. Гамма, Р. Хелма, Р. Джонсона, Ю.И. Бродского, А.М. Марасанова и др. Однако, не один из перечисленных авторов не рассматривал методологию безопасности персонала при перевозке пассажиров МКТ, не оценивали возникающие риски от опасностей, связанные с их конструктивными особенностями, не применяли современные методы видеоаналитики, риск-ориентированного подхода с использованием интернета вещей, интеллектуального анализа при разработке рекомендательной системы для лиц, принимающих управленческие решения по безаварийности техногенных процессов, искусственного интеллекта при оценке квалификации инженерно-технических работников и персонала в процессе профессиональной аттестации для выявления недостаточных знаний, умений, навыков по действию в аварийной ситуации.
В последнее десятилетие возникла проблема замены ЛС, отработавших нормативный срок службы, поставки нового оборудования для высотного
строительства, организации инновационных средств общественного транспорта для урбанизированной среды с использованием КД в качестве канатного метро, в связи с чем возникает необходимость обеспечения безопасности персонала при перевозке пассажиров этих машин от техногенных рисков. Данная проблема на сегодняшний день в научном и практическом плане окончательно не решена.
По результатам проведенного статистического анализа аварий, инцидентов и несчастных случаев по официальным данным ежегодных отчетов и писем Ростехнадзора, актов расследования аварий, предписаний, участия автора в комиссиях при их расследовании с использованием процедур анализа риска, разработана методология обеспечения безопасности персонала при перевозке пассажиров МКТ, путем интегральной оценки риска разнородных факторов, не поддающихся описанию аналитическими зависимостями, с использованием нейросетевых технологий, создана рекомендательная системы для лиц, принимающих управленческие решения, с интерпретацией опасностей в цветовую гамму на мобильное приложение.
Особенностью МКТ является риск воздействия опасных производственных факторов не только на оборудование машин и агрегатов, но и на персонал при перевозке пассажиров.
Для обеспечения безопасности эксплуатации ЛС и КД на основе модели обеспечения безопасности проведен анализ риска, предложены эффективные меры по защите оборудования, персонала и пассажиров от выявленных опасностей.
В соответствии с разработанной моделью повышения безопасности МКТ уделено внимание наиболее ответственным элементам МКТ - стальным канатам, обеспечение безопасности при эксплуатации которых определяется совершенствованием геометрических параметров и физико-механических характеристик его элементов, технологии их изготовления, качеством исходных материалов, совершенствованием методов контроля, диагностики, мониторинга, а также эффективностью технического обслуживания персоналом с использованием риск-ориентированного подхода.
Фундаментальный вклад в теорию, расчет и конструирование стальных
канатов внесли М.М. Федоров, П.П. Нестеров, М.Ф. Глушко, С.Т. Сергеев, Г.П Ксюнин, В.И. Дворников, В.А. Бережинский, В.А. Малиновский, М.Н. Хальфин, В.А. Рыжиков, А.А. Короткий, Н.Г. Гончаренко и многие другие.
Эволюция физических моделей и расчетных схем при рассмотрении напряженно-деформированного состояния и формирования дефектов на поверхности стальных канатов имеет более чем восьмидесятилетнюю историю. Причины появления дефекта «волнистость- исследовали многие крупные ученые. Профессоры М.Ф. Глушко и С.Т. Сергеев связывали возникновение дефектов с переходными процессами при изгибе каната на блоке. Профессоры М.Н. Хальфин и В.А. Рыжиков объясняли основные причины волнистости изготовленного каната, главным образом, неравномерностью технологического натяжения его элементов (проволоки и пряди). Профессор В.А. Малиновский утверждал, что к возникновению волнистости, помимо технологических причин, приводит несимметричное растяжение каната в процессе эксплуатации, которое имеется практически всегда на переходных участках у блоков и других взаимодействующих с канатом деталей. Им разработана теория и компьютерная программа расчета напряженно-деформированного состояния стандартного каната, имеющего дефект «волнистость-. Профессором А.А. Коротким был предложен новый метод оценки несущей способности стального каната, основанный на положении теории строительной механики о системе витых тонких стержней, равнодействующая усилий в элементах которой смещена относительно геометрического центра диаметра каната на величину эксцентриситета.
Стальной канат представляет собой сложное техническое изделие с многократным резервированием его элементов в виде системы витых проволок и прядей, что обеспечивает его безопасность при эксплуатации. Главным показателем снижения безопасности каната является появление дефектов и повреждений, неизбежно образующихся на поверхности и внутри каната. Оценка его безопасности осуществляется на основе анализа развития браковочных показателей: по изменению геометрии каната, по износу, коррозии, обрывам проволок, потере внутреннего сечения, по деформационным признакам,
температурному воздействию. Возникающие дефекты при их развитии и взаимодействии приводят к снижению безопасности и несущей способности стального каната, к сравнительно длительному во времени развитию неблагоприятного техногенного события, что, в конечном итоге, может привести к аварии, инциденту или гибели людей. В связи с этим возрастает значение своевременной и достоверной оценки технического состояния канатов в процессе эксплуатации МКТ.
Результаты визуального и инструментального контроля канатов, проводимого персоналом эксплуатирующей организацией, согласно руководству по эксплуатации, не всегда объективны, учитывая физиологические особенности зрительного восприятия человека, что может привести к аварийной ситуации. Многие методы и устройства диагностики канатов находятся в экспериментальной разработке или несовершенны, поэтому следует отметить отсутствие на сегодняшний день объективного способа оценки технического состояния канатов, что подчеркивает актуальность данной проблемы.
Поставлена и решена задача исследования процесса формирования дефектов стальных канатов, причин их возникновения, оценки влияния комбинации нескольких дефектов на работоспособность стальных канатов с использованием технологии искусственных нейронных сетей. Результатом явился предложенный в третьей главе новый метод визуально-измерительного контроля стального каната с использованием компьютерного зрения и возможностью обработки цифровой информации по распознаванию видов дефектов с глубоким машинным обучением в нейронных сетях и получением интегральной оценки технического состояния каната с возможностью интерпретации результата на мобильных устройствах. Разработан программно-аппаратный комплекс визуально-измерительного контроля стальных канатов (ПАК ВИК), предназначенный для дистанционного мониторинга технического состояния канатов в процессе эксплуатации с последующей передачей результатов в цветовой гамме на мобильное приложение пользователей. После успешных производственных испытаний ПАК ВИК рекомендован для постановки продукции на производство.
Поставленная цель по использованию компьютерного зрения и искусственного интеллекта при оценке технического состояния стальных канатов с использованием ПАК ВИК подтверждена на приёмочных испытаниях в условиях эксплуатации лифтов.
В работе представлена концепция агрегатно-модульного построения транспортно-логистической системы для урбанизированной среды на основе инновационной технологии канатного метро, содержащая мехатронные модули движителя, подвижного состава и станции, а также параметрические ряды на основе унификации отдельных узлов и агрегатов с элементами резервирования для заданного уровня безопасности, обеспечивающих устойчивую связанность городских территорий в зависимости от функционального назначения, организационных, технологических параметров, региональных и природно-климатических условий. Разработаны параметрические ряды машин на основе унификации и оптимизации отдельных узлов, агрегатов производственных систем с наличием систем полного резервирования, подверженных отказам, отличительной особенностью которых является совершенствование конструкций с учетом гарантированной доставки пассажиров на станции при любых сценариях аварий без эвакуации пассажиров из подвижного состава.
Для проведения эвакуации пассажиров из подвижного состава предлагаются инновационные структуры и конструкции КД с функцией постоянного резервирования, в том числе замена главного привода дороги на многоприводную, распределенную по длине трассы систему дискретных приводов, установленную на промежуточных станциях.
Разработана концепция городского пассажирского канатного транспорта, научно-технологические и конструктивные решения по созданию промышленного оборудования канатного метро, располагающегося в надземном ярусе городской инфраструктуры, построенного с использованием многоцелевых мехатронных модулей, обеспечивающих устойчивую связь городских территорий при заданном уровне безопасности.
Решена проблема обеспечения безопасности с учетом влияния человеческого
фактора, который обусловил необходимость повышения профессионализма, ответственности и высокой квалификации персонала. Применение в процессе эксплуатации новых систем и конструкций МКТ требует совершенствования технологии процессов обслуживания по контролю технического состояния оборудования, определяет необходимость постоянного повышения уровня профессионализма на базе профессиональных стандартов с регулярной периодичностью систематизации трудовых функций, умений, знаний, практических навыков, трудовых действий специалистов и обслуживающего персонала МКТ, разработки и корректировки профессиональных стандартов, а также организации специализированных Центров оценки квалификации (ЦОК) для проведения профессиональных экзаменов работников.
Степень разработанности темы исследования
Основу исследований в области методологии безопасности опасных и опасных производственных объектов, в частности МКТ, составили публикации док. техн. наук Дукельского А.И., Беркмана М.Б., Патарая Д.И., Волкова Д.П., Панасенко Н.Н., Котельникова В.С., Хальфина М.Н, Рыжикова В.А., Короткого А.А., Чукарина А.Н., Булыгина Ю.И., Лагерева А.В., Новикова В.В., Емельяновой Г.А., Бауровой Н.И. и ряда других ученых.
Цель работы - обеспечение безопасности труда персонала при техническом обслуживании и эксплуатации МКТ на основе совершенствования риск-анализа, контроля, мониторинга, диагностики, риск-ориентированного подхода, методов интеллектуального анализа при разработке рекомендательной системы для лиц, принимающих управленческие решения по обеспечению безаварийной процессов перевозки пассажиров.
Основные задачи:
1. Разработать методологию обеспечения безопасности труда персонала при перевозке пассажиров МКТ на основе проведения риск-анализа аварийности, инцидентов, травматизма и идентификации значимых опасностей.
Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Оценка технического состояния машин с канатной тягой на основе имитационного моделирования2023 год, кандидат наук Апрышкин Дмитрий Сергеевич
Мониторинг опасных производственных факторов эксплуатации грузоподъемных машин на предприятиях машиностроения при риск-ориентированном подходе2019 год, кандидат наук Кинжибалов Александр Александрович
Влияние термоциклических воздействий расплавленного металла на систему "конвертер-кран" и совершенствование ее элементов2004 год, кандидат технических наук Малов, Владислав Валерьевич
Оценка риска человеческого фактора в системе "персонал - подъемные механизмы - производственная среда" на предприятиях машиностроения2015 год, кандидат наук Егельская, Елена Владимировна
Обеспечение долговечности лифтовых канатоведущих шкивов2013 год, кандидат технических наук Витчук, Павел Владимирович
Список литературы диссертационного исследования доктор наук Панфилов Алексей Викторович, 2024 год
ЛИТЕРАТУРА
1. Алгоритмизация задачи видеоскопического контроля состояния стальных канатов / Панфилов А.В., Юсупов А.Р., Гавриков М.М., Синецкий Р.М. // Научно-технический вестник Брянского государственного университета, 2023, №1. - DOI: 10.22281/2413-99202023-09-01-87-100
2. Bradski, Gary; Kaehler, Adrian. Learning OpenCV: Computer Vision with the OpenCV Library. O'Reilly. 2008. p. 571
3. Y. M. Wang, Y. Li and J. B. Zheng, "A camera calibration technique based on OpenCV," The 3rd International Conference on Information Sciences and Interaction Sciences, Chengdu, China, 2010, pp. 403-406, doi: 10.1109/ICICIS.2010.5534797.
4. Imtiyaz Anwar, Arun Khosla, Rajiv Kapoor. Handbook of Research on Advanced Concepts in Real-Time Image and Video Processing. IGI Global, 2018. pp. 504. Doi: 10.4018/978-1-5225-2848-7
ПРИЛОЖЕНИЕ А. РЕЗУЛЬТАТЫ
Таблица А. 1. Результаты определения дефекта диаметра каната
Канат Проход
Дефект 1, номера кадров, фото 147:150
Дефект 2, номера кадров. фото
Дефект 3, номера кадров, фото
Дефект 4, фото
номера кадров,
7 1 93:94 236:237
94 IflUHHH g
7 2 692:692 729:730
692 !,\ШГ Ш J
8 1 128:129 271:272 309:309
129 nil IHM 271 .mJJÊ' J| ]
8 2 685:685 722:723 867:868
685 lUM)Ш 722 1 I
Таблица А.2. Результаты определения дефекта волнистости каната
Ка- Про- Дефект 1, номера нат ход кадров, фото
Дефект 2, номера кадров, фото
Дефект 3, номера кадров, фото
Дефект 4, номера кадров, фото
Дефект 5, номера кадров, фото_
Дефект 6, номера кадров, фото_
Дефект 7, номера кадров, фото_
190:190
293:293
400:400
437:437
1
1
4 1 236:236 339:339 483:483 567:567
! 339 Ц И 1 567 1 m
4 2 639:639 704:704 791:791 809:809
639 704 1 fMiÈi I 809 W
5 1 178:178 281:281 322:322 425:425
i 281 1 ■ 322 1 И\ МИД mi '■и» ' ÍAVi w liMll ß m ikHnll^H
5 2 682:682 769:769 787:787 828:828
I 769 787 Ш|Н| I
927:927
$
7 1 69:69 238:238 381:382
69 ШЧШЧН ilJft к1 382 Viril «Vi
7 2 583:583 832:833 899:899
583 мпнпи 833 ft 89Я
ПРИЛОЖЕНИЕ Б. ТЕКСТ ПРОГРАММНОГО МОДУЛЯ ОБНАРУЖЕНИЯ ДЕФЕКТОВ ГЕОМЕТРИИ КАНАТА
Файл proc_geom.py:
import os import sys
sys .path.append('../pythonlib ' )
import cv2 as cv import numpy as np import time import pylab as plt
from fileutils import LoadVideo
from fileutils import SaveVideo
from camerautils import UndistortRectifyImages
from camerautils import ApplyRect
from camerautils import RotateImages
from glb import G from config import LoadConfig from config import GetSetup from geom_analyze import *
SourceFile = '' CfgFile = '' ResultFile = '' DestFile = ''
RectifyImage = False RectifyMatrixFileName = '' UndistortMatrixtFileName = ''
def ProcessOneFile(source_filename, dest_filename, restrict_min_frame, restrict_max_frame, box, rotate, stat_win_len, win_len, adjust_angle): time_start = time.perf_counter()
data = {'frames': [], 'frame indexes': [], 'adjust angle': adjust_angle, "Threshold_U_T1": G.Config.Algorithms.Threshold_U_T1, "Threshold_U_T2": G.Config.Algorithms.Threshold_U_T2, "Threshold_D_T1": G.Config.Algorithms.Threshold_D_T1, "Threshold_D_T2": G.Config.Algorithms.Threshold_D_T2, 'verbose': True, 'detail level': 4} print('Обработка файла: ', source_filename)
loaded, frames, indexes, (source_width, source_height, source_frames, source_sec, source_fps)
= \
LoadVideo(source_filename, restrict_min_frame, restrict_max_frame) if not loaded: return
data['source frames'] = frames data['frame indexes ' ] = indexes
print('Длительность : ', source_sec, ' сек, ', source_frames, ' кадров, размер ', source_width, 'x', source_height)
if box is not None and 0 <= box[0] < box[2] and 0 <= box[1] < box[3]: roi = [int(box[0] * source_width), int(box[1] * source_height), int(box[2] * source_width), int(box[3] * source_height)]
else:
roi = [0, source_width, 0, source_height] if RectifyImage:
mtx = np.load(RectifyMatrixFileName) dist = np.load(UndistortMatrixtFileName)
rectified, rect = UndistortRectifyImages(frames, mtx, dist)
newrect = [max(roi[0], rect[0]), max(roi[1], rect[1]), min(roi[2], rect[2]), min(roi[3], rect[3])]
print('Ректификация изображения выполнена, rect:', rect, 'final:', newrect) data['frames rectified'] = rectified roi = newrect
subimages = ApplyRect(rectified, roi) else:
subimages = ApplyRect(frames, roi) if rotate:
subimages = RotateImages(subimages) data['frames'] = subimages
data = process_diam2(stat_win_len, win_len, data) data = ProcessUndulation(data)
if 'result frames' in data and len(data['result frames']) > 0: print('Сохранение файла: ', dest_filename) saved = SaveVideo(dest_filename, data['result frames']) if not saved: return
if 'undulation plot p' in data and 'undulation plot threshold' in data and 'undulation plot i' in data:
plt.figure(figsize=(8, 4), dpi=300) graph_p = data['undulation plot p'] graph_t = data['undulation plot threshold'] graph_i = data['undulation plot i'] mv = max(max(graph_p), max(graph_t)) f = data['undulation'] i = [t[0] for t in f] v = [mv] * len (i)
plt.plot(graph_i, graph_p, label='Отклонение') plt.plot(graph_i, graph_t, label='Порог') if len(i) > 0 :
plt.plot(i, v, 'o', label='Найдены') plt.legend()
plt.savefig(dest_filename + '.undlt.png')
if 'graph_edop' in data and 'graph_ei' in data and 'graph_x' in data: plt.figure(figsize=(8, 4), dpi=300)
# plt.figure(figsize=(8, 4)) graph_edop = data['graph_edop'] graph_ei = data['graph_ei']
t = data['graph_x']
# plt.ylim(ymin=0, ymax=0.2)
# fig = plt.figure(figsize=(4, 2), dpi=300) plt.plot(t, graph_ei, label='Отклонение') plt.plot(t, graph_edop, label='Порог')
plt.legend()
# plt.show()
plt.savefig(dest_filename + '.diam.png') plt.close ( )
time_end = time.perf_counter()
print('Время обработки: ', round(time_end - time_start, 1), ' сек') return data
def ProcessResults(result_filename, data, cam_params): diam_faults = data['diam faults'] undulations = data['undulation'] frames = data['result frames'] indexes = data['frame indexes ' ] win = cam_params.FramesWinLen
# print('Диаметры: ', diam_faults)
# print('Волностости: ', undulations)
faults = []
for d in diam_faults:
f = next((x for x in range(len(faults)) if faults[x][2] == 1 and faults[x][0] - win <= d[0] <= faults[x][1] + win), -1) if f < 0:
faults.append((d[0], d[0], 1)) else:
faults [ f] = (min(faults[f] [0], d[0]), max(faults[f][1], d[0]), faults[f][2]) for d in undulations:
f = next((x for x in range(len(faults)) if faults[x][2] == 2 and faults[x][0] - win <= d[0] <= faults[x][1] + win), -1)
if f < 0:
faults.append((d[0], d[0], 2)) else:
faults [ f] = (min(faults[f] [0], d[0]), max(faults[f][1], d[0]), faults[f][2]) faults = list(sorted(faults, key=lambda x: x[0])) data['faults ' ] = faults
f = open(result_filename, 'w') for d in faults:
t = 'диаметр' if d[2] == 1 else 'волнистость'
f.write ('(' + str (d[0] ) + ' - ' + str (d[1] ) + '): ' + t + '\n') f.close()
saved_images = [] for d in faults:
for i in range(d[0], d[1] + 1): if i in indexes:
idx = indexes.index(i) if idx not in saved_images: image = frames[idx]
t = '_diam.png' if d[2] == 1 else '_voln.png'
fname = os.path.join(os.path.dirname(result_filename), str(i) + t) cv.imwrite(fname, image) saved_images.append(idx)
print('Результаты сохранены,', len(saved_images), 'кадров, файл:', result_filename) return data
if _name_ == '_main_' :
global AdjustAngle if len(sys.argv) < 4:
print('Run: python.exe proc_geom.py <in_file> <camera_id> <rope_id> {<out_file>} {<config_file>}') sys.exit() SourceFile = sys.argv[1] CameraId = sys.argv[2] RopeId = sys.argv[3] if len(sys.argv) > 5:
ConfigFile = sys.argv[5] else:
ConfigFile = 'config.json' if len(sys.argv) > 4:
ResultFile = sys.argv[4] else:
fn, _ = os.path.splitext(SourceFile) ResultFile = fn + '.txt' fn, _ = os.path.splitext(ResultFile) DestFile = fn + '.avi'
if not LoadConfig(ConfigFile): exit(1)
cam_params, rope_params = GetSetup(CameraId, RopeId)
if cam_params.Rectify: RectifyImage = True
RectifyMatrixFileName = cam_params.RectifyMatrix1 UndistortMatrixtFileName = cam_params.RectifyMatrix2 adjust_angle = False if cam_params.AdjustAngle: adjust_angle = True
data = ProcessOneFile(SourceFile, DestFile, -1, -1, rope_params.Rect, cam_params.Rotate,
G.Config.Algorithms.DiamStatWinLen, G.Config.Algorithms.DiamWinLen,
adjust_angle)
ProcessResults(ResultFile, data, cam_params)
Файл glb.py
import sys
this = sys.modules[_name_]
def _object(**kwargs):
return type("Object", (), kwargs)
this.G = _object(
Config=_obj ect(),
FrameWidth=0,
FrameHeight=0,
RotateSource=False,
DestWidth=0,
DestHeight=0,
CameraId=0,
RopeId=0,
DebugDraw=True,
KeyPointsMinDistByDiam=0.8, # минимальное расстояние между пиками (80% от диаметра каната) Defects=[]
)
Файл geom_analyze.py
import sys
sys.path.append('../pythonlib')
import math import numpy as np import cv2 as cv
import numpy.polynomial.polynomial as poly
from contourutils import GetContours
from contourutils import DrawContourUnclosed
from contourutils import ContoursIsGood
def ProcessUndulation(data):
if 'frames' not in data or 'frame indexes' not in data:
return data frames = data['frames'] indexes = data['frame indexes'] if 'contours' in data:
saved_contours = data['contours'] else:
saved_contours = None if 'result frames' in data:
saved_result = data['result frames'] else:
saved_result = None verbose = True detail_level = 5 if 'verbose' in data:
verbose = data['verbose'] if 'detail level' in data:
detail_level = data['detail level'] if len(frames) < 1:
return data TC1, TC2 = 1., 3. if 'Threshold_U_T1' in data:
TC1 = data['Threshold_U_T1'] if 'Threshold_U_T2' in data:
TC2 = data['Threshold_U_T2'] frames_processed = 0 frames_total = len(frames) sequences = [] diams = [] stat = []
founds = [] contours = [ ] result_frames = [] for idx in range(len(frames)): frame = frames[idx] index = indexes[idx] height = frame.shape[0] width = frame.shape[1]
if saved_result is None: image = frame.copy()
# номер кадра
font = cv.FONT_HERSHEY_COMPLEX
fontScale = 1
fontColor = (0, 0, 0)
thickness = 1
lineType = 2
msg = str(index)
pos = (5, 25)
cv.putText(image, msg, pos, font, fontScale, fontColor, thickness, lineType) result_frames.append(image) else:
image = saved_result[idx]
if saved_contours is not None:
# взять уже найденные контуры
(cont_left, cont_right) = saved_contours[idx] else:
# контуров еще нет, строим
[cont_left, cont_right, _] = GetContours(frame, thres_block=int(height / 20) * 2 + 1) if cont_left.shape[0] < 1 or cont_right.shape[0] < 1:
cont_left, cont_right = None, None if verbose and detail_level >= 5: if cont_left is not None:
DrawContourUnclosed(image, cont_left, (0, 255, 255)) if cont_right is not None:
DrawContourUnclosed(image, cont_right, (0, 255, 0)) if not ContoursIsGood(cont_left, cont_right, height):
cont_left, cont_right = None, None contours.append((cont_left, cont_right))
if cont_left is not None and cont_right is not None:
# строим параболические аппроксимации точек контура
l_xs, l_ys = cont_left[:, 0, 0], cont_left[:, 0, 1]
if l_ys[0] > l_ys[-1]:
l_xs, l_ys = l_xs[::-1], l_ys[::-1] l_ys_min, l_ys_max = np.min(l_ys), np.max(l_ys) l_coefs = poly.polyfit(l_ys, l_xs, 2) l_poly = poly.Polynomial(l_coefs)
r_xs, r_ys = cont_right[:, 0, 0], cont_right[:, 0, 1] i f r_ys[0] > r_ys[-1]:
r_xs, r_ys = r_xs[::-1], r_ys[::-1] r_ys_min, r_ys_max = np.min(r_ys), np.max(r_ys) r_coefs = poly.polyfit(r_ys, r_xs, 2) r_poly = poly.Polynomial(r_coefs)
# строим хорды
xl1, yl1, xl2, yl2 = l_poly(l_ys_min), l_ys_min, l_poly(l_ys_max), l_ys_max xr1, yr1, xr2, yr2 = r_poly(r_ys_min), r_ys_min, r_poly(r_ys_max), r_ys_max
if verbose and detail_level >= 5: c = [0, 0, 255] for y in range(height):
image[y, int(l_poly(y))] = image[y, int(r_poly(y))] = c cv. line (image, (int(xl1), yl1), (int(xl2), yl2), (255, 0, 0), 1) cv.line(image, (int(xr1), yr1), (int(xr2), yr2), (255, 0, 0), 1)
# получаем последовательности -1,1, величину отклонения и находим средний диаметр в
кадре
ls, rs, ds = [], [], [] for y in range(height):
xl, xr = l_poly(y), r_poly(y)
if xl is not None and xr is not None:
xlh = (xll + (xl2 - xll) / (yl2 - yll) * y) xrh = (xrl + (xr2 - xrl) / (yr2 - yrl) * y) el = 1 if xl > xlh else -1 er = 1 if xr > xrh else -1 dxl, dxr = abs(xl - xlh), abs(xr - xrh) d = abs(xr - xl) ls.append((y, el, dxl)) rs.append((y, er, dxr)) ds.append(d) sequences.append((ls, rs)) d = np.mean(ds) diams.append(d)
# if verbose:
# m = int(frame.shape[1] / 2)
# for y, e, _ in ls:
# cl = (0, 255, 255) if e < 0 else (0, 255, 0)
# x1 = m-15 if e < 0 else m-10
# x2 = m-10 if e < 0 else m-5
# cv.line(image, (x1, y), (x2, y), cl, 1)
# for y, e, _ in rs:
# cl = (0, 255, 255) if e < 0 else (0, 255, 0)
# x1 = m+5 if e < 0 else m+10
# x2 = m+10 if e < 0 else m+15
# cv.line(image, (x1, y), (x2, y), cl, 1)
# находим относительную величину максимального отклонения от величины диаметра l, r, dl, dr = ls, rs, [], [] m = min(len(l), len(r) ) l = l[:m] r = r[:m]
ldl, ldr, lpl, lpr = 0, 0, 0, 0 # длина откл влево, вправо, мощ откл влево, вправо по левому контуру
ldl = sum([1 if x[1] < 0 else 0 for x in l]) ldr = sum([1 if x[1] > 0 else 0 for x in l]) lkl = ldl / m lkr = ldr / m
lpl = max([x[2] if x[1] < 0 else 0 for x in l]) lpr = max([x[2] if x[1] > 0 else 0 for x in l]) lgl = lpl / d lgr = lpr / d
rdl, rdr, rpl, rpr = 0, 0, 0, 0 # длина откл влево, вправо, мощ откл влево, вправо по правому контуру
rdl = sum([1 if x[1] < 0 else 0 for x in r]) rdr = sum([1 if x[1] > 0 else 0 for x in r]) rkl = rdl / m rkr = rdr / m
rpl = max([x[2] if x[1] < 0 else 0 for x in r]) rpr = max([x[2] if x[1] > 0 else 0 for x in r]) rgl = rpl / d rgr = rpr / d
stat.append((index, ldl, ldr, lpl, lpr, lkl, lkr, lgl, lgr, rdl, rdr, rpl, rpr, rkl, rkr, rgl, rgr))
# выводим статистику в кадре
# msg = 'Kl={}'.format(round(lkl, 2))
# pos = (5, 50)
# cv.putText(image, msg, pos, font, fontScale,
# msg = 'Kr={}'.format(round(lkr, 2))
# pos = (5, 75)
# cv.putText(image, msg, pos, font, fontScale,
# msg = 'Pl={}'.format(round(lgl, 2))
# pos = (5, 100)
# cv.putText(image, msg, pos, font, fontScale,
# msg = 'Pr={}'.format(round(lgr, 2))
# pos = (5, 125)
# cv.putText(image, msg, pos, font, fontScale,
# msg = 'Kl={}'.format(round(rkl, 2))
# pos = (width-150, 50)
# cv.putText(image, msg, pos, font, fontScale,
# msg = 'Kr={}'.format(round(rkr, 2))
# pos = (width-150, 75)
fontcolor, thickness, lineType)
fontcolor, thickness, lineType)
fontcolor, thickness, lineType)
fontcolor, thickness, lineType)
fontcolor, thickness, lineType)
# cv.putText(image, msg, pos, font, fontScale, fontColor, thickness, lineType)
# msg = 'Pl={}'.format(round(rgl, 2))
# pos = (width-150, 100)
# cv.putText(image, msg, pos, font, fontScale, fontColor, thickness, lineType)
# msg = 'Pr={}'.format(round(rgr, 2))
# pos = (width-150, 125)
# cv.putText(image, msg, pos, font, fontScale, fontColor, thickness, lineType)
frames_processed += 1 if verbose:
print('\гНахождение волнистости, кадр {} из {}, {}% завершено'.
format(frames_processed, frames_total, round(frames_processed / frames_total
100)), end="") if verbose: print()
if saved_contours is None:
data['contours'] = contours if saved_result is None:
data['result frames'] = result_frames
# else:
# result_frames = saved_result
t = [x[5] for x in stat]
LKLm, LKLs = np.mean(t), np.std(t)
LKL = LKLm + 3 * LKLs
t = [x[6] for x in stat]
LKRm, LKRs = np.mean(t), np.std(t)
LKR = LKRm + 3 * LKRs
# t = [x[7] for x in stat]
t = np.ma.masked_equal([x[7] for x in stat], 0) LPLm, LPLs = np.mean(t), np.std(t) LPL = LPLm + 3 * LPLs
t = np.ma.masked_equal([x[8] for x in stat], 0) LPRm, LPRs = np.mean(t), np.std(t) LPR = LPRm + 3 * LPRs
t = [x[13] for x in stat]
RKLm, RKLs = np.mean(t), np.std(t)
RKL = RKLm + 3 * RKLs
t = [x[14] for x in stat]
RKRm, RKRs = np.mean(t), np.std(t)
RKR = RKRm + 3 * RKRs
t = np.ma.masked_equal([x[15] for x in stat], 0) RPLm, RPLs = np.mean(t), np.std(t) RPL = RPLm + 3 * RPLs
t = np.ma.masked_equal([x[16] for x in stat], 0) RPRm, RPRs = np.mean(t), np.std(t) RPR = RPRm + 3 * RPRs
data['stat'] = stat if verbose:
with open('res/stat.csv', 'w', newline='') as f:
f.write('num;ldl;ldr;lpl;lpr;lkl;lkr;lgl;lgr;rdl;rdr;rpl;rpr;rkl;rkr;rgl;rgr;\r\n') for r in stat: for c in r:
f.write('{};'.format(round(c, 2)).replace('.', ',')) f.write('\r\n') f.write('\r\n\r\n\r\n')
f.write('K лев влево;;;{};\r\n'.format(round(LKL, 2)).replace('.', ',')) f.write('P лев влево;;;{};\r\n'.format(round(LPL, 2)).replace('.', ',')) f.write('K лев вправо;;;{};\r\n'.format(round(LKR, 2)).replace('.', ',')) f.write('P лев вправо;;^};^^'. format ( round (LPR, 2)).replace('.', ',')) f.write('\r\n')
f.write('K прав влево;;;{};\r\n'.format(round(RKL, 2)).replace('.', ',')) f.write('P прав влево;;;{};\r\n'.format(round(RPL, 2)).replace('.', ',')) f.write('K прав вправо^М};^^'. format ( round (RKR, 2)).replace('.', ',')) f.write('P прав вправо^М};^^'. format ( round (RPR, 2)).replace('.', ','))
# определение порога волнистости
t = [x [7] for x in stat if x[7] > 0] + [x[8] for x in stat if x[8] > 0] + \ [x[ 15] for x in stat if x[15] > 0] + [x[16] for x in stat if x[16] > 0] Pm, Ps = np.mean(t), np.std(t)
P = TC1 * Pm + TC2 * Ps data['undulation threshold'] = P if verbose:
print('Порог волнистости:', P)
# нахождение волнистости
for i, st in zip(indexes, stat):
lkl, lkr, lgl, lgr, rkl, rkr, rgl, rgr = st[5], st[6], st[7], st[8], st[13], st[14], st[15],
st[16]
if lgl >= P and rgl >= 0.01:
founds.append((i, 'левая')) if lgr >= 0.01 and rgr >= P:
founds.append((i, 'правая')) data['undulation'] = founds
# отмечаем на ролике if verbose:
print('Найдено кадров с волнистостью: ', len(founds)) if detail_level >= 5:
for i, t in founds:
# print('Волнистость ' + t + ' кадр ' + str(i))
idx = indexes.index(i)
image = data['result frames'][idx]
font = cv.FONT_HERSHEY_COMPLEX
fontScale = 1
fontColor = (0, 0, 255)
thickness = 1
lineType = 2
msg = t
pos = (5, 50) # pos = (5, 200)
cv.putText(image, msg, pos, font, fontScale, fontcolor, thickness, lineType)
if verbose:
to = [x[0] for x in stat]
t1 = [x[7] for x in stat]
t2 = [x[8] for x in stat]
t3 = [x[15] for x in stat]
t4 = [x[16] for x in stat]
t = []
r = []
i = []
for v0, v1, v2, v3, v4 in zip(t0, t1, t2, t3, t4) v = max(v1, v2, v3, v4) i.append(v0) t.append(v) r.append(P) data['undulation plot p'] = t data['undulation plot threshold'] = r data['undulation plot i'] = i
return data
def process_diam2(frames_win_len, M, data):
if 'frames' not in data or 'frame indexes' not in data:
return frames = data['frames ' ] indexes = data['frame indexes ' ] adjust_angle = False if 'adjust angle' in data:
adjust_angle = data['adjust angle'] if len(frames) < 1:
return data results = [] result_frames = [] frames_total = len(frames)
# if frames_win_len < 1:
# frames_win_len = 2 * frames_total + 1 hl = int(frames_win_len / 2)
hh = frames_win_len - hl frame_height = frames[0].shape[0] TC1, TC2 = 1., 5. if 'Threshold D T1' in data:
TC1 = data['Threshold_D_T1'] if 'Threshold_D_T2' in data:
TC2 = data['Threshold_D_T2'] if 'contours' in data:
saved_contours = data['contours'] else:
saved_contours = None if 'result frames' in data:
saved_result = data['result frames'] else:
saved_result = None verbose = True detail_level = 5 if 'verbose' in data:
verbose = data['verbose'] if 'detail level' in data:
detail_level = data['detail level']
contours = [] left_contours = [] right_contours = [] frames_processed = 0 bad_frames = []
for idx in range(frames_total): frame = frames[idx] index = indexes[idx]
if saved_result is None: draw = np.copy(frame)
# номер кадра
font = cv.FONT_HERSHEY_COMPLEX
fontScale = 1
fontColor = (0, 0, 0)
thickness = 1
lineType = 2
msg = str(index)
pos = (5, 25)
cv.putText(draw, msg, pos, font, fontScale, fontColor, thickness, lineType) result_frames.append(draw) else:
draw = saved_result[idx]
if saved_contours is not None:
# взять уже найденные контуры (left, right) = contours[idx]
else:
# контуров еще нет, строим
[left, right, _] = GetContours(frame, thres_block=int(frame_height / 20) * 2 + 1) if left.shape[0] < 1 or right.shape[0] < 1:
left, right = None, None if verbose and detail_level >= 5: if left is not None:
DrawContourUnclosed(draw, left, (0, 255, 255)) if right is not None:
DrawContourUnclosed(draw, right, (0, 255, 0)) if not ContoursIsGood(left, right, frame_height):
left, right = None, None contours.append((left, right)) if left is None or right is None: bad_frames.append(index)
left_contours.append(left) right_contours.append(right)
frames_processed += 1 if verbose:
print('\rВыделение контуров кадра {} из {}, {}% завершено'.
format(frames_processed, frames_total, round(frames_processed / frames_total *
100)), end="") if verbose:
if len(bad_frames) > 0:
print('\nПлохие кадры:', bad_frames) else:
print()
if saved_contours is None:
data['contours'] = contours if saved_result is None:
data['result frames'] = result_frames else:
result frames = saved result
fis = []
frames_processed = 0
for idx in range(frames_total):
cont_left = left_contours[idx] cont_right = right_contours[idx] if cont_left is None or cont_right is None: frames_processed += 1 continue
# строим параболические аппроксимации точек контура
l_xs, l_ys = cont_left[:, 0, 0], cont_left[:, 0, 1]
if l_ys[0] > l_ys[-1]:
l_xs, l_ys = l_xs[::-1], l_ys[::-1] l_ys_min, l_ys_max = np.min(l_ys), np.max(l_ys) l_coefs = poly.polyfit(l_ys, l_xs, 2) l_poly = poly.Polynomial(l_coefs)
r_xs, r_ys = cont_right[:, 0, 0], cont_right[:, 0, 1] i f r_ys[0] > r_ys[-1]:
r_xs, r_ys = r_xs[::-1], r_ys[::-1] r_ys_min, r_ys_max = np.min(r_ys), np.max(r_ys) r_coefs = poly.polyfit(r_ys, r_xs, 2) r_poly = poly.Polynomial(r_coefs)
# строим хорды
xl1, yl1, xl2, yl2 = l_poly(l_ys_min), l_ys_min, xr1, yr1, xr2, yr2 = r_poly(r_ys_min), r_ys_min,
# определяем угол между хордами l, r = (xl2-xl1, yl2-yl1), (xr2-xr1, yr2-yr1)
l_poly(l_ys_max) , r_poly(r_ys_max) ,
l_ys_max r_ys_max
if
0) or (r[0]
[0]
+
l[1]
0 and r[1] : "r[1]) /
(l[0] == 0 and l [1] continue cosfi = abs(l[0] math. sqrt (r[0]*r[0]+r[1]*r[1]) fi = math.acos(cosfi) fis.append(fi) if verbose:
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.