Дневник Сорши @sorsha_channel Channel on Telegram

Дневник Сорши

@sorsha_channel


Летопись.

Связь: @sorsha_go

Youtube: https://youtube.com/@Sorsha_go
TikTok: https://www.tiktok.com/@sorsha_go
Github: https://github.com/sorsha256

Дневник Сорши (Russian)

Дневник Сорши - это уникальный канал, который представляет собой интересную летопись, наполненную увлекательными историями и заметками. Здесь вы найдете увлекательные записи о различных событиях, людях и местах, которые могут заинтересовать каждого. Канал создан для того, чтобы поделиться удивительными открытиями и впечатлениями с широкой аудиторией. Подписывайтесь на канал, чтобы не пропустить новые и увлекательные материалы от Сорши! Для связи с автором канала обращайтесь по контактам: @sorsha_go. Также вы можете следить за творчеством Сорши на платформах Youtube (https://youtube.com/@Sorsha_go), TikTok (https://www.tiktok.com/@sorsha_go) и Github (https://github.com/sorsha256). Присоединяйтесь к сообществу Дневника Сорши и погрузитесь в увлекательный мир историй и открытий!

Дневник Сорши

24 Jul, 22:18


Квест/Конкурс окончен! Два финалиста получили x-bogus, _signature !

Благодарю всех, кто принял в нём участие! 🫶

В скором времени возможно, еще что-нибудь придумаю)

Дневник Сорши

23 Jul, 13:20


Нас с Вами уже достаточно много, поэтому я предлагаю создать чатик с уклоном на разработку , языки программирования и все ответвления от этого)

Три золотых правила:
1. Не оскорблять друг друга, не переходить на личности и т.д и т.п. В общем, любое деструктивное поведение — бан.
2. Никакой чернухи, насилия, экстремизма и прочего неуместного контента — бан.
3. Никакой рекламы. Это не доска объявлений — бан.

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

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

Приветствуется любое конструктивное общение/размышление/помощь

Правила могут видоизменяться, что-то вноситься или что-то убираться. Не соблюдение правил — бан.

Велком! 🫶
https://t.me/+Cstyrc2jwhkxZjdi

Дневник Сорши

09 Jul, 21:29


На самом это было увлекательно сидеть подбирать и играться с логарифмами и квадратными корнями. По факту, я с ними познакомился только в процессе, в школе я даже не понимал зачем это вообще нужно)
В общем прикольные штуки

Искренне надеюсь, что я еще столкнусь с чем то подобным в своей жизни , это пробирает до глубины

Дневник Сорши

09 Jul, 21:25


  @staticmethod
def avoid_zero(arg):
# return max(arg, 1e-10)
if arg == 0:
return 1.1
elif arg == 1:
return 1.1
else:
return arg

@staticmethod
def avoid_negative(arg):
is_negative = math.copysign(1, arg) == -1

if is_negative:
return 0
else:
return arg

def calculate_efficiency_profile(self, arg1, arg2, arg3):
"""
:param arg1: like count
:param arg2: followers count
:param arg3: videos count
:return: (arg1 * arg2) * math.log(math.sqrt(arg1 * arg2)) * math.sqrt(arg3)
"""
arg1 = self.flatten(arg1)
arg2 = self.flatten(arg2)
arg3 = self.flatten(arg3)
return round((arg1 * arg2) * math.log(math.sqrt(arg1 * arg2)) * math.sqrt(arg3), 5)

def flatten(self, arg):
return math.sqrt(self.avoid_negative(math.log(self.avoid_zero(self.avoid_negative(arg)))))

def smoothing(self, arg1, arg2):
arg1 = self.flatten(arg1)
arg2 = self.flatten(arg2)
return (arg1 * arg2) * math.log(math.sqrt(arg1 * arg2))

def calculate_efficiency_video(self, arg1, arg2, arg3, arg4, arg5):
"""
:param arg1: play count
:param arg2: like count
:param arg3: comment count
:param arg4: collect count
:param arg5: share count
:return: sum all args
"""
arg2 = self.smoothing(arg1, arg2)
arg3 = self.smoothing(arg1, arg3)
arg4 = self.smoothing(arg1, arg4)
arg5 = self.smoothing(arg1, arg5)
return round(arg2 + arg3 + arg4 + arg5, 5)

Дневник Сорши

09 Jul, 21:25


Пост про подсчет эффективности профиля, видео.

Короче логика такая

Часть 1
На счет анализа профилей

сейчас будет духота, готовьтесь, открывайте окна, в срочном порядке

берется кол-во лайков и подписчиков и профиле
Далее т.к у бывают значения от 0 до бесконечности, все это причесывается в преобразование натурального логарифма и следом извлечение корня, чтобы условно значения были не 854.721(лайков, подписчиков), а превратить допустим в 0.72835, 2.11354, 1.83821 ну и так далее. Причесываем, сплющиваем данные так сказать
like = √ln(x)
followers = √ln(x)
videos = √ln(x)
После этого делаем следующее:
Уже на нормализованных и причесанных данных
(like*followers)*ln(√like*followers)*√count_videos
1) количество лайков*кол во подписчиков — на этом этапе мы получаем (эффективность?) аккаунта. Чем выше показатель, тем соответственно эффективнее, чем ниже, тем менее эффективный


2) Следом извлекаем корень из выражения like*followers и преобразовываем в натуральный логарифм — проще говоря, готовим буст для наших значений. Типа как экспонента, только в десятки раз мягче

3) После даем "буст" значениям, чтобы они совсем мизерными не были

4) Умножаем на извлеченный корень натурального логарифма количества видео, который учитывает количество видео на аккаунте. Чем больше тем сильнее буст, т.к бывают аккаунты где там 10кк лайков и 5кк аудитории, а 3 видоса. Но если будет так, то общий бал сильно режет, смысл от таких аккаунтов не постят видики но жирные?)


Теперь чтобы на цифрах было проще воспринимать
Еще раз формула чтобы было к чему обращаться
likes = √ln(likes)
followers = √ln(followers)
video = √ln(video)
(likes*followers)*ln(√likes*followers)*√count_videos

likes = 500_000
followers = 10_000
video = 243

likes = √ln(500_000) = 3.622480279781289
followers = √ln(10_000) = 3.034854258770293
video = √ln(video) = 2,3437281078104065049127875397809
efficiency = 10,99369970440565 — (likes*followers)
boost = ln(√10,99369970440565) = 1,1986611772835586465490741228013
video = √243 = 1,5309239392636090413383031608292

10,99369970440565*1,1986611772835586465490741228013*1,5309239392636090413383031608292 = 20,17409 (округляем)

Такой получается балл аккаунта 20.17409
На самом деле до 100 гг как сложно добраться)) Там должны быть миллиарды на аккаунтах, чтобы хоть как то приблизиться)
Но самое важное, чтобы вроде бы все корректно выглядит)


Часть 2
Анализ видиков
Здесь происходит анализ отношение просмотров к показателю, а то есть : лайк, коммент , закладки, шаред

В целом, все показатели равные друг перед другом, можно конечно дать еще некоторые веса для этого, но не стал, ибо нет уверенности, что вот ну прям точно, что например, из за "поделились" больше видик набирает просмотры

Тут в целом практически такая же формула
x1 = √ln(x1)
x2 = √ln(x2)
res = (x1*x2)* ln(√(x1*x2))

тут где x1 в целом везде подставляется количество просмотров, а где x2 подставляются другие значения, опять же, лайки, комменты и т.д

В последующем это все дело суммируется

Просто тупо банально суммируется
all = res1 + res2 + res3 + res4 + res5 и получаем n-ый бал, например — 71.45167

Дневник Сорши

08 Jul, 09:24


Напоминаю, что есть еще одно призовое место, конкурс продолжается

Дневник Сорши

07 Jul, 11:07


Первый финалист есть!

Дневник Сорши

07 Jul, 07:37


WyczZTIzZTgxNjAwMzk1OTRhMzM4OTRmNjU2NGUxYjEzNDhiYmQ3YTAwODhkNDJjNGFjYjczZWVhZWQ1OWMwMDlkJywgJ2ExZmNlNDM2Mzg1NGZmODg4Y2ZmNGI4ZTc4NzVkNjAwYzI2ODIzOTA0MTJhOGNmNzliMzdkMGIxMTE0OGIwZmEnLCAnZTNiOThhNGRhMzFhMTI3ZDRiZGU2ZTQzMDMzZjY2YmEyNzRjYWIwZWI3ZWIxYzcwZWM0MTQwMmJmNjI3M2RkOCcsICczZjc5YmI3YjQzNWIwNTMyMTY1MWRhZWZkMzc0Y2RjNjgxZGMwNmZhYTY1ZTM3NGUzODMzN2I4OGNhMDQ2ZGVhJywgJzE4YWMzZTczNDNmMDE2ODkwYzUxMGU5M2Y5MzUyNjExNjlkOWUzZjU2NTQzNjQyOTgzMGZhZjA5MzRmNGY4ZTQnLCAnY2E5NzgxMTJjYTFiYmRjYWZhYzIzMWIzOWEyM2RjNGRhNzg2ZWZmODE0N2M0ZTcyYjk4MDc3ODVhZmVlNDhiYicsICcxYjE2YjFkZjUzOGJhMTJkYzNmOTdlZGJiODVjYWE3MDUwZDQ2YzE0ODEzNDI5MGZlYmE4MGY4MjM2YzgzZGI5JywgJzJlN2QyYzAzYTk1MDdhZTI2NWVjZjViNTM1Njg4NWE1MzM5M2EyMDI5ZDI0MTM5NDk5NzI2NWExYTI1YWVmYzYnLCAnM2Y3OWJiN2I0MzViMDUzMjE2NTFkYWVmZDM3NGNkYzY4MWRjMDZmYWE2NWUzNzRlMzgzMzdiODhjYTA0NmRlYScsICdlN2FjMDc4NjY2OGUwZmYwZjAyYjYyYmQwNGY0NWZmNjM2ZmQ4MmRiNjNiMTEwNDYwMWM5NzVkYzAwNWYzYTY3JywgJ2ExZmNlNDM2Mzg1NGZmODg4Y2ZmNGI4ZTc4NzVkNjAwYzI2ODIzOTA0MTJhOGNmNzliMzdkMGIxMTE0OGIwZmEnLCAnNjVjNzRjMTVhNjg2MTg3YmI2YmJmOTk1OGY0OTRmYzZiODAwNjgwMzRhNjU5YTlhZDQ0OTkxYjA4YzU4ZjJkMicsICcwYmZlOTM1ZTcwYzMyMWM3Y2EzYWZjNzVjZTBkMGNhMmY5OGI1NDIyZTAwOGJiMzFjMDBjNmQ3ZjFmMWMwYWQ2JywgJzQ1NDM0OWU0MjJmMDUyOTcxOTFlYWQxM2UyMWQzZGI1MjBlNWFiZWY1MjA1NWU0OTY0YjgyZmIyMTNmNTkzYTEnLCAnZDJlMmFkZjcxNzdiN2E4YWZkZGJjMTJkMTYzNGNmMjNlYTFhNzEwMjBmNmExMzA4MDcwYTE2NDAwZmI2OGZkZScsICcyNTJmMTBjODM2MTBlYmNhMWEwNTljMGJhZTgyNTVlYmEyZjk1YmU0ZDFkN2JjZmE4OWQ3MjQ4YTgyZDlmMTExJywgJ2RlN2QxYjcyMWExZTA2MzJiN2NmMDRlZGY1MDMyYzhlY2ZmYTlmOWEwODQ5MjE1MmI5MjZmMWE1YTdlNzY1ZDcnLCAnNDU0MzQ5ZTQyMmYwNTI5NzE5MWVhZDEzZTIxZDNkYjUyMGU1YWJlZjUyMDU1ZTQ5NjRiODJmYjIxM2Y1OTNhMScsICcwNDNhNzE4Nzc0YzU3MmJkOGEyNWFkYmViMWJmY2Q1YzAyNTZhZTExY2VjZjlmOWMzZjkyNWQwZTUyYmVhZjg5JywgJ2UzYjk4YTRkYTMxYTEyN2Q0YmRlNmU0MzAzM2Y2NmJhMjc0Y2FiMGViN2ViMWM3MGVjNDE0MDJiZjYyNzNkZDgnLCAnZDJlMmFkZjcxNzdiN2E4YWZkZGJjMTJkMTYzNGNmMjNlYTFhNzEwMjBmNmExMzA4MDcwYTE2NDAwZmI2OGZkZScsICcwNDNhNzE4Nzc0YzU3MmJkOGEyNWFkYmViMWJmY2Q1YzAyNTZhZTExY2VjZjlmOWMzZjkyNWQwZTUyYmVhZjg5JywgJ2UzYjk4YTRkYTMxYTEyN2Q0YmRlNmU0MzAzM2Y2NmJhMjc0Y2FiMGViN2ViMWM3MGVjNDE0MDJiZjYyNzNkZDgnLCAnM2Y3OWJiN2I0MzViMDUzMjE2NTFkYWVmZDM3NGNkYzY4MWRjMDZmYWE2NWUzNzRlMzgzMzdiODhjYTA0NmRlYScsICcxNDhkZTljNWE3YTQ0ZDE5ZTU2Y2Q5YWUxYTU1NGJmNjc4NDdhZmIwYzU4ZjZlMTJmYTI5YWM3ZGRmY2E5OTQwJ10=

Дневник Сорши

07 Jul, 07:37


У меня лежит x-bogus, _signature так же без дела, но вот просто так выкатывать дело этакое, я потратил туда время и силы, и на этом потенциально можно так же заработать, если правильно его применить. Я вот подумал, давайте я его выкачу, с небольшой оговоркой. Немного интерактива.

первые 2 человека которые дойдут до финала, получают X-Bogus, _signature, js код с генерацией. Участвовать может абсолютно любой желающий.

Дневник Сорши

04 Jul, 15:01


Вот для чего этот канал был создан)

Миссия выполняется, это главное! 🫶

Дневник Сорши

04 Jul, 14:24


И так, выкатываю исходники залива тикток
Если я буду расписывать каждую функцию, у меня уйдет точно не один день)

Далее будет описание самой концепции софта, Парсер с x-bogus, _signature тут не присутствует, так как это другой софт, и они были у меня интегрированы

Но в целом суть такая
1) сделал автоматические сбросы и хранение сессий всех копий аккаунтов, вся логика была построена: Сколько лежат, если допустим больше 3+ дней лежит то этот дамп берется в работу (в дампе 8 акков, т.е сессия), к каждому дампу привязаны акки, на каких акках уже был залив, а на каких нет в этой сессии и т.д и т.п, еще что-то было , не помню уже точно, т.к прорабатывал там каждую деталь и мелочь, чтобы я никак не трогал это
2) Лайв парсинг ленты фап, пришлось реверснуть параметры веб версии тт, чтобы это делать. Далее произвел расчет соотношении просмотров к лайкам/комментам/шары/закладкам, все это дело через логарифмы и квадратные корни. То есть, я подсчитывал коэффициент "эффективности" видео. Чем ближе к "100" , тем эффективнее, чем меньше ближе к 0, тем оно менее эффективно. Точно так же по соотношению подписчиков/лайков/кол-во видео, все так же. Выявлялась эффективность аккаунта, далее вычислалась общая эффективность видео по отношению к аккаунту. По итогу я сравнял как мне показалось очень хорошо. если значение больше 1, допустим 1.30 или 1.50 , то видео 90% залетит(оно так и получилось), если меньше 1, допустим 0.80, 0.5 и т.д, то оно не залетит и оно скучное. Взвешивались все параметры в общем что у видео, что у профиля. То есть я пришел к тому, что у меня не было никаких заоблачных цифр, а все в диапазоне эффективности акка/видео 0-100 , а эффективность видео к аккау 0-2.
3) Уникализация. Я смекнул, что если перехватывать видео на лету прямо здесь и сейчас которое на взлете, я могу его зауникалить, и выложить повторно, т.к его еще никто не перезаливал по сути своей, либо если перезаливали, то процент будет минимальный. Так же перезаливал видео с текстом на изображении. Я брал удалял текст (обучил нейронку классифицировать текста тиктовские, шрифты и кооординаты bouding box), далее при помощи tesseract(сверточно-реккуретная нейросетка), узнавал что за текст на изображении, после применял генеративную нейросетку, для удаления текста на изображении. Далее зеркалил. По сути это уже другое видео, если опираться на ЦВЗ (цифровой водяной знак). В общем концепция была именно такая
4) Далее, уже непосредственно сам залив)

Ну и чтобы это все работало нонстопом конечно , я с этим не должен был взаимодействовать)

_________________


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

Просто я понимаю, что оно у меня лежит совершенно без дела и вероятность того, что я к этому еще раз прикоснусь, маловероятно , либо не в ближайшие годы))

Написано на Python

исходники 900 метров 🫠
скоро будет, ожидайте

Дневник Сорши

02 Jul, 10:15


Что-то я закрутился, завертелся немного и только сейчас понял, что Нам уже год с небольшим!
Время летит безумно, вроде вот, я только как будто вчера создал канал и с Вами всеми познакомился, а уже целый год прошел!
Спасибо , Вам, за то что Вы читаете , что Вы здесь есть! Без Вас не было и меня) Кому мне тогда нужно было бы это все вещать?

На самом деле очень рад, что я его начал однажды вести, и очень рад, что моя информация так или иначе для кого то полезна, для меня это очень много значит! Значит, все не зря, моя миссия выполняется)

Буду стараться продолжать Вас радовать какими то штучками , фишечками, как только буду находить что-либо интересное)

В данный момент времени, пока что ничего нового за последние несколько месяцев не изучал, пока что руководствуюсь всеми своими старыми знаниями, пока их вполне хватает, ну и исходя из этого, пока что не понимаю, как базу можно выдать)) Но как только, так сразу выдам)

Спасибо , Вам, Друзья мои ! 🫶

Дневник Сорши

07 Jun, 09:41


Краткий гайд о том как удалять текст и изображения или любые другие объекты

Внимание!
Здесь присутствуют GAN нейройная сеть, есть предобученная модель, чтобы пощупать потрогать что вообще потенциально можно сделать. Но чтобы в идеале оно удаляло, необходимо обучить свою модель, либо сделать дообучение уже существующей(Я этим не занимался, юзал так как есть для удаления текста из видео)

Что понадобится:
1. Установить Pytorch
2. Немного вашей видюхи (можно и проц)
3. Пару картинок
4. Немного вашего времени

1) И так для того, чтобы удалить текст или объект с изображения, необходимо сделать маску для этого изображения. Спросите вы, как делать эту маску? Нужно просто на черном полотне сделать белый квадрат или любая другая производная форма. Для этого безусловно используем opencv2 или же Pillow , кому как удобнее, чтобы весь процесс был автоматизирован
2) После того как сделали маску, переходим в файл run.py и видим следующее

from model.inpainting import Inpainting


inpainting = Inpainting()

in_image = "input.jpg"
in_mask = "mask.jpg"
output = "output.jpg"
checkpoint = "./pretrained/states_pt_places2.pth"
inpainting = inpainting.inpainting(in_image, in_mask, output, checkpoint)


in_image — входящее изображение где необходимо удалить текст/объект
in_mask — входящая маска для изображения
output — выходное изобржение
checkpoint — путь к обученной модели для инпейнтинг
inpainting — непосредственно сам инпейнтинг

Запустили, чуть подождали, и у нас сохранилось изображение.

Я это юзал для того чтобы удалять текст с видосов для тиктока. То есть я обнаруживал тип текста на изображении, далее обнаруживал его bouding box, следом вырезал это, преобразовывал изображение в бинарность(черный фон, белый текст и по жирнее) , далее каждый кадр за кадром удалял, после склеивал все полученные изображения в видео , подставлял обратно звуковую дорожку, и у меня получалось в целом не плохо. Да, предупрежу сразу, все равно будет видно "замазывание", но чем лучше и точнее вы обрежете изображение, чем лучше подберете настройку маски, тем лучше будет результат + не забываем про то что модель можно так же еще обучить.

Этот класс Inpainting можно наследовать в другие классы, что удобно.

К сожалению, я утерял источник с гитхаба откуда я качал эту либу т.к это было почти пол года назад, что очень грустно (( Поэтому закидываю таким образом
VT: Клик

Ссылка на модель будет ниже, как загрузится, момент

Дневник Сорши

07 Jun, 08:58


Краткий гайд о том как детектить текст на изображении
Нам понадобится:
1. Petyhon Python
2. Tesseract и Tesseract
3. 10 минут вашего времени

И так, после как все дело скачали, произвели установку собственно Tesseract , создаем небольшой скриптец для Пайтона, выглядит этот код следующим образом

import pytesseract  # импортируем либу

pytesseract.pytesseract.tesseract_cmd = r'C:/Program Files/Tesseract-OCR/tesseract.exe' # указываем путь до .exe Tesseract

custom_config = f"--oem 3 --psm 11 -l eng+rus -c tessedit_create_hocr=1" # конфиг для tesseract
text = pytesseract.image_to_string(image, config=custom_config, nice=1).replace('\n', ' ') # инициализация поиска текста
print(text)


PROFIT!

Тессеракт построен на Реккуретно-сверточной нейронной сети, если мне сейчас не изменяет, да и в прочем из логики это скорее всего так.
На счет конфига, нужно играться с ним и подбираться наилучшую конфигурацию. У Тессеракт достаточно емкая документация, можно к ней возвращаться сотни раз и узнавать что-то новое.

Так же, не забываем предварительно обрабатывать изображения при помощи того же opencv и конвертировать изображение в бинари (Строго черно-белый, без оттенков).

Так же можно дообучить свою модель для распознавания текста, чтобы именно ваш текст узнавал лучше, т.к могут быть ошибки. К примеру: Если вы плохо обработаете изображение или же буква будет не совсем ясна например "i" "l" то могут возникать ошибки.

С любовью!

Дневник Сорши

06 Jun, 23:06


Долго думал, что можно дополнить в этот пост, но я думаю здесь многословие лишнее.

Просто оставлю это здесь.

Давно я не встречал гениальных мемов, но этот вообще фурор безусловно, как по мне.

Ориг