Так вот к чему это я. Сейчас я занимаюсь обучением своей нейросети для обработки фотографий и скажу честно это ужас. Мало того что я с трудом понимаю как она работает, так если еще и выдает неверный результат то это просто взрывает мозг.
Ниже прикреплю немного изображений для понимания как происходит этот процесс обучения.
Ниже прикреплю немного изображений для понимания как происходит этот процесс обучения.
Так вот, здесь представлены скрины моего кода и как это происходит. Последние 2 фотографии из моего датасета. Первая это входные данные, последняя желаемый результат.
Сейчас я поставил датасет на 10 фотографий, и обрабатывал он их около 10 мину (400 эпох это слишком много, но мне нужно для понимания того как работает алгоритм обучения)
После я конечно сменю количество эпох до 50, когда удостоверюсь что обучение работает как надо
Вот чем я занимался последние 2 месяца (и да, я не бездельничал):
Как я уже писал ранее я изучал нейронные сети. И решил запилить проектик с использованием ИИ.
Это будет приложение с говорящим названием VTubersLife, созданное специально для Витубинга.
Почему именно оно? На рынке сейчас только 1 конкурирующий аналог Vtubers Studio. Я его потыкал и понял что дерьмо полнейшее. И решил создать приложение под себя (Да я хочу стать аниме девочкой_).
И начал разработку. Сейчас немного о этапах разработки:
• Разработал первый прототип приложения, пока только визуальный. Теперь это не выглядит по конченному.
• Накидал связь с бд
• Сделал два сайта: один — главный, с информацией и загрузкой, второй — для настроек аккаунта.
И тут еще решил усложнить себе задачу создав мобильное приложение.
А сейчас чуть конкретнее по каждому пункту
Как я уже писал ранее я изучал нейронные сети. И решил запилить проектик с использованием ИИ.
Это будет приложение с говорящим названием VTubersLife, созданное специально для Витубинга.
Почему именно оно? На рынке сейчас только 1 конкурирующий аналог Vtubers Studio. Я его потыкал и понял что дерьмо полнейшее. И решил создать приложение под себя (Да я хочу стать аниме девочкой_).
И начал разработку. Сейчас немного о этапах разработки:
• Разработал первый прототип приложения, пока только визуальный. Теперь это не выглядит по конченному.
• Накидал связь с бд
• Сделал два сайта: один — главный, с информацией и загрузкой, второй — для настроек аккаунта.
И тут еще решил усложнить себе задачу создав мобильное приложение.
А сейчас чуть конкретнее по каждому пункту
Начнем с приложения:
Основная идея:
Суть в том, чтобы превратить любую камеру (веб-камеру, USB или поток по Wi-Fi) в мощный motion-трекер. Приложение в реальном времени будет брать видеопоток и с помощью нейросети считывать движения человека, чтобы перенести их на 3D-аватарку. Звучит просто, но за этой простотой скрывается просто адский бекенд.
Актуализация:
Да, просто отслеживать движения по точкам — уже не новинка. Поэтому я хочу добавить поддержку полноценных 3D-моделей с интеграцией в виртуальное пространство.
Сейчас такой уровень погружения достигается только с помощью дорогущих VR-трекеров (типа Vive Trackers) или профессиональных Motion Capture-систем. Да, существующие нейросети это умеют, но они либо платные, либо требуют серверов за космические деньги. А я же хочу сделать это практически бесплатно.
Что еще будет крутого (помимо основной фичи):
Галерея эффектов и масок, в интегрированном магазине моделей. Сейчас эти модели покупают у художников и риггеров, а тут будет целый магазин с кучей моделей, где люди могут покупать и продавать модельки. Важный момент это гарантия от приложения что покупателя не кинут на деньги. Таким образом приложение превратится в целую площадку что превлечет много народу
Эмоции во время стрима. Это не просто маска, это именно эффекты на видео, что добавляют разнообразия.
В планах добавить предметы в виртуальную область, чтобы персонаж мог держать например меч, или оружие и тд. (но эт еще не скоро).
Но чет я замечтался. Пока я только приготовил макет для реализации основной функции приложения (а именно обработка видео потока). И то нужно допиливать бек. Прикрепил скрины самого приложения. В нем будут переводы на разные языки (русский, английский, немецкий, китайский, японский, испанский, французский), а так же выбор тем, они показаны на скринах.
Основная идея:
Суть в том, чтобы превратить любую камеру (веб-камеру, USB или поток по Wi-Fi) в мощный motion-трекер. Приложение в реальном времени будет брать видеопоток и с помощью нейросети считывать движения человека, чтобы перенести их на 3D-аватарку. Звучит просто, но за этой простотой скрывается просто адский бекенд.
Актуализация:
Да, просто отслеживать движения по точкам — уже не новинка. Поэтому я хочу добавить поддержку полноценных 3D-моделей с интеграцией в виртуальное пространство.
Сейчас такой уровень погружения достигается только с помощью дорогущих VR-трекеров (типа Vive Trackers) или профессиональных Motion Capture-систем. Да, существующие нейросети это умеют, но они либо платные, либо требуют серверов за космические деньги. А я же хочу сделать это практически бесплатно.
Что еще будет крутого (помимо основной фичи):
Галерея эффектов и масок, в интегрированном магазине моделей. Сейчас эти модели покупают у художников и риггеров, а тут будет целый магазин с кучей моделей, где люди могут покупать и продавать модельки. Важный момент это гарантия от приложения что покупателя не кинут на деньги. Таким образом приложение превратится в целую площадку что превлечет много народу
Эмоции во время стрима. Это не просто маска, это именно эффекты на видео, что добавляют разнообразия.
В планах добавить предметы в виртуальную область, чтобы персонаж мог держать например меч, или оружие и тд. (но эт еще не скоро).
Но чет я замечтался. Пока я только приготовил макет для реализации основной функции приложения (а именно обработка видео потока). И то нужно допиливать бек. Прикрепил скрины самого приложения. В нем будут переводы на разные языки (русский, английский, немецкий, китайский, японский, испанский, французский), а так же выбор тем, они показаны на скринах.
А теперь про мобилку:
Само приложение представляет из себя приложение-помощник. Что будет выводить видео поток по wifi, а приложение на пк будет его улавливать и считывать. По мимо подключения по wifi оно так же будет работать и через usb, это ускорит скорость обработки видео
Само приложение представляет из себя приложение-помощник. Что будет выводить видео поток по wifi, а приложение на пк будет его улавливать и считывать. По мимо подключения по wifi оно так же будет работать и через usb, это ускорит скорость обработки видео
В общем приложение находится в активной стадии разработки. Я буду чаще публиковать новости о нем. И очень хочу его закончить
Ах да, чуть не забыл. Раз уж я в 9 классе то нужно продолжать подготовку в ОГЭ по информатике. Я буду продолжать скидывать сюда задачи и способы их решения, а предыдущие задачи и решения здесь
Решение:
1. Простейшим умножением на 2 по разрядам получаем 102
2.
Пояснение, функция int может переводить строки в числа, в разных СС в ДЕСЯТИЧНУЮ систему счисления. Имеет формат int(*СТРОКА числа*, основание СС), например ("101010", 2). Мы переводим число 101010 из 2 в 10.
Ответ: 102
1. Простейшим умножением на 2 по разрядам получаем 102
2.
print(int(str(1100110), 2))
Пояснение, функция int может переводить строки в числа, в разных СС в ДЕСЯТИЧНУЮ систему счисления. Имеет формат int(*СТРОКА числа*, основание СС), например ("101010", 2). Мы переводим число 101010 из 2 в 10.
Ответ: 102
Решение:
Представим число 100 в виде суммы степеней двойки: 100 = 64 + 32 + 4. Теперь переведем каждое из слагаемых в двоичную систему счисления и сложим результаты: 64 = 100 0000; 32 = 10 0000; 4 = 100. Следовательно, 100 = 110 0100. Ответ: 3
Однако есть решение и с помощью кода:
Пояснение: В предыдущем задание мы уже использовали bin(), здесь же мы еще добавляем функцию count(), которая принимает в себя СТРОКУ нужного нам значения
Представим число 100 в виде суммы степеней двойки: 100 = 64 + 32 + 4. Теперь переведем каждое из слагаемых в двоичную систему счисления и сложим результаты: 64 = 100 0000; 32 = 10 0000; 4 = 100. Следовательно, 100 = 110 0100. Ответ: 3
Однако есть решение и с помощью кода:
print(bin(100)[2:].count('1'))Пояснение: В предыдущем задание мы уже использовали bin(), здесь же мы еще добавляем функцию count(), которая принимает в себя СТРОКУ нужного нам значения
Решение:
Переведем все числа в восьмеричную систему счисления:
1. 5510 = 678, сумма цифр — 6 + 7 = 158;
2. 8310 = 1238 , сумма цифр — 1 + 2 + 3 = 68;
3. 9110 = 1338 , сумма цифр — 1 + 3 + 3 = 78.
Таким образом, наименьшей суммой цифр в восьмеричной записи числа является число 6.
Ответ: 6.
Или на языке python
Пояснение: Есть 2 массива: numbers, содержащий исходные числа, и answer, в который буду помещаться уже сумма цифр изначальных чисел. После мы перебираем числа из numbers, и перебираем в них цифры, складывая их, помещаем результат в массив answer. И в ответе находим минимальное значение.
Важно если до этого мы переводили из 10 в 2 с помощью
Переведем все числа в восьмеричную систему счисления:
1. 5510 = 678, сумма цифр — 6 + 7 = 158;
2. 8310 = 1238 , сумма цифр — 1 + 2 + 3 = 68;
3. 9110 = 1338 , сумма цифр — 1 + 3 + 3 = 78.
Таким образом, наименьшей суммой цифр в восьмеричной записи числа является число 6.
Ответ: 6.
Или на языке python
numbers = [55, 83, 91]
answer = []
for numb in numbers:
answer.append(sum(int(digit) for digit in oct(numb)[2:]))
print(min(answer))
Пояснение: Есть 2 массива: numbers, содержащий исходные числа, и answer, в который буду помещаться уже сумма цифр изначальных чисел. После мы перебираем числа из numbers, и перебираем в них цифры, складывая их, помещаем результат в массив answer. И в ответе находим минимальное значение.
Важно если до этого мы переводили из 10 в 2 с помощью
bin(), то для перевода из 10 в 8 используется oct(), имеющая такой же синтаксис