Saltar al contenido
Home » Football » FK Crvena Zvezda contra FK Radnik Surdulica

FK Crvena Zvezda contra FK Radnik Surdulica

FK Crvena Zvezda vs FK Radnik Surdulica: Expert Analysis and Predictions

The upcoming football match between FK Crvena Zvezda and FK Radnik Surdulica promises to be an exciting encounter, with both teams eager to claim victory on November 2, 2025, at 16:00. FK Crvena Zvezda, the home team, is favored to win with odds of 94.50, reflecting their strong performance and home advantage. The betting odds suggest a high-scoring game, with the average total goals predicted at 4.36, indicating an action-packed match. Both teams have shown their offensive capabilities, with an average of 2.75 goals scored per game by the home team and 1.71 conceded goals by the away team. The possibility of a red card is also notable, with an average of 1.49 cards per match.

FK Crvena Zvezda

DLDLW
-

FK Radnik Surdulica

DLWLL
Date: 2025-11-02
Time: 16:00
(FT)
Venue: Rajko Mitic Stadium
Score: 1-1

Predictions:

MarketPredictionOddResult
Home Team To Win94.50%(1-1) 1.04
Over 0.5 Goals HT91.10%(1-1) 0-0 1H 1.15
Away Team Not To Score In 2nd Half87.00%(1-1)
Over 1.5 Goals85.10%(1-1) 1.03
First Goal Between Minute 0-2987.60%(1-1)
Home Team To Score In 1st Half81.60%(1-1)
Home Team To Score In 2nd Half84.30%(1-1)
Both Teams Not To Score In 1st Half78.40%(1-1)
Both Teams Not To Score In 2nd Half69.90%(1-1)
Over 2.5 Goals64.20%(1-1) 1.22
Away Team Not To Score In 1st Half57.10%(1-1)
Over 3.5 Goals52.60%(1-1) 1.65
Over 2.5 BTTS53.90%(1-1) 3.40
Over 1.5 Goals HT53.90%(1-1) 0-0 1H 1.80
Both Teams To Score55.50%(1-1)
Last Goal Minute 0-7252.90%(1-1)
Avg. Total Goals4.36%(1-1)
Avg. Goals Scored2.75%(1-1)
Avg. Conceded Goals1.71%(1-1)
Red Cards1.49%(1-1)

Predictions for Key Betting Lists

Home Team To Win

With odds at 94.50, betting on FK Crvena Zvezda to secure a victory is highly favorable. Their strong lineup and home advantage make them a formidable opponent.

Over 0.5 Goals HT

Odds of 91.10 suggest that scoring will occur in the first half, indicating an aggressive start from both teams.

Away Team Not To Score In 2nd Half

The likelihood of FK Radnik Surdulica not scoring in the second half is high, with odds at 87.00. This could be due to strategic adjustments or defensive strengths from FK Crvena Zvezda.

Over 1.5 Goals

Odds of 85.10 indicate that more than one and a half goals are expected to be scored in the match, pointing towards a dynamic and offensive game.

First Goal Between Minute 0-29

With odds at 87.60, there is a strong chance that the first goal will be scored within the first 29 minutes, setting an early tone for the match.

Home Team To Score In 1st Half

The probability of FK Crvena Zvezda scoring in the first half is high, with odds at 81.60, reflecting their offensive prowess.

Home Team To Score In 2nd Half

Odds of 84.30 suggest that FK Crvena Zvezda will continue their scoring momentum into the second half.

Both Teams Not To Score In 1st Half

With odds at 78.40, there’s a possibility that neither team will score in the first half, indicating potential defensive strategies.

Both Teams Not To Score In 2nd Half

The likelihood of both teams not scoring in the second half is lower, with odds at 69.90, suggesting continued offensive efforts.

Over 2.5 Goals

Odds of 64.20 indicate that more than two and a half goals are expected to be scored in total, pointing to an exciting match.

Away Team Not To Score In 1st Half

The chance of FK Radnik Surdulica not scoring in the first half is moderate, with odds at 57.10.

Over 3.5 Goals

Odds of 52.60 suggest that more than three and a half goals are likely to be scored, indicating a very high-scoring game.

Over 2.5 BTTS (Both Teams To Score)

Odds of 53.90 suggest that both teams will score over two and a half times combined during the match.

Over 1.5 Goals HT

The likelihood of over one and a half goals being scored in the first half is high, with odds at 53.90.

liliang2016/2017_10_24/BBDNN/keras/dataGenerator.py
from keras.preprocessing.image import ImageDataGenerator
import numpy as np

def dataGen(batch_size=16):

gen = ImageDataGenerator(
rotation_range=45,
width_shift_range=0.15,
height_shift_range=0.15,
zoom_range=0.15,
horizontal_flip=True,
vertical_flip=False,
fill_mode=’reflect’
)

return gen.flow_from_directory(
‘data/train’,
target_size=(256,256),
batch_size=batch_size,
class_mode=’categorical’,
shuffle=True)

def dataGenTest(batch_size=16):

return ImageDataGenerator().flow_from_directory(
‘data/test’,
target_size=(256,256),
batch_size=batch_size,
class_mode=None,
shuffle=False)

def dataGenPredict(batch_size=16):

return ImageDataGenerator().flow_from_directory(
‘data/predict’,
target_size=(256,256),
batch_size=batch_size,
class_mode=None,
shuffle=False)

if __name__ == ‘__main__’:

train_generator = dataGen()
test_generator = dataGenTest()
predict_generator = dataGenPredict()

print(train_generator.next())
print(test_generator.next())
print(predict_generator.next())#coding=utf-8
from __future__ import division
import tensorflow as tf
import numpy as np
import cv2
import os
import math

def randomCrop(imgs,w,h,crop_h,crop_w):

# x,y=random.randint(0,w-crop_w),random.randint(0,h-crop_h)
# x,y=random.randint(0,w-crop_w),random.randint(0,h-crop_h)
# return imgs[:,x:x+crop_w,y:y+crop_h,:]

# w_cropped=int(w*0.8)
# h_cropped=int(h*0.8)
# x=random.randint(0,w-w_cropped)
# y=random.randint(0,h-h_cropped)
# return imgs[:,x:x+w_cropped,y:y+h_cropped,:]

# w_cropped=int(w*random.uniform(0.6,1))
# h_cropped=int(h*random.uniform(0.6,1))
# x=random.randint(0,w-w_cropped)
# y=random.randint(0,h-h_cropped)
# return imgs[:,x:x+w_cropped,y:y+h_cropped,:]

# w_cropped=int(w*random.uniform(0.,1))
# h_cropped=int(h*random.uniform(0.,1))
# x=random.randint(0,w-w_cropped)
# y=random.randint(0,h-h_cropped)
# return imgs[:,x:x+w_cropped,y:y+h_cropped,:]

w_cropped=int(w*random.uniform(0.,1))
h_cropped=int(h*random.uniform(0.,1))

if w_cropped>=crop_w and h_cropped>=crop_h:

x=random.randint(0,w-w_cropped)
y=random.randint(0,h-h_cropped)

return imgs[:,x:x+crop_w,y:y+crop_h,:]

else:

while True:

x=random.randint(0,w-crop_w)
y=random.randint(0,h-crop_h)

if imgs[2,x:x+crop_w,y:y+crop_h].mean()>100:

break

return imgs[:,x:x+crop_w,y:y+crop_h,:]

def randomFlip(imgs):

# if random.random()<0.5:

# for i in range(imgs.shape[0]):

# imgs[i,:,:,:]=cv2.flip(imgs[i,:,:,:],1)

# return imgs

# else:

# return imgs

# if random.random()<0.5:

# for i in range(imgs.shape[0]):

# imgs[i,:,:,:]=cv2.flip(imgs[i,:,:,:],-1)

# return imgs

# else:

# return imgs

def preprocess(imgs,batch_size):

def procTrain(imgs,batch_size):

cropped_imgs=np.zeros([batch_size]+list(imgs.shape[1:]),dtype=np.uint8)

for i in range(batch_size):

cropped_imgs[i]=randomCrop(imgs[i],imgs.shape[2],imgs.shape[3],imgs.shape[2],imgs.shape[3])

imgs=cropped_imgs

cropped_imgs=np.zeros([batch_size]+list(imgs.shape[1:]),dtype=np.uint8)

for i in range(batch_size):

cropped_imgs[i]=randomCrop(imgs[i],imgs.shape[2],imgs.shape[3],128,128)

imgs=cropped_imgs

def procValid(imgs,batch_size):

cropped_imgs=np.zeros([batch_size]+list(imgs.shape[1:]),dtype=np.uint8)

for i in range(batch_size):

cropped_imgs[i]=cv2.resize(imgs[i],dsize=(128,128))

imgs=cropped_imgs

def procTest(imgs,batch_size):

cropped_imgs=np.zeros([batch_size]+list(imgs.shape[1:]),dtype=np.uint8)

for i in range(batch_size):

cropped_imgs[i]=cv2.resize(imgs[i],dsize=(128,128))

imgs=cropped_imgs

if __name__ == '__main__':

liliang2016/2017_10_24<|file_sep因为使用了不同的图片数据集,所以这两个版本的训练结果差别比较大。

运行方法:

python main.py -gpu [gpu_id] -num_epoch [num_epoch] -batch [batch size] -lr [learning rate] -model [model name] -train [train or test]

具体选项:

–gpu : 使用哪个GPU,例如: –gpu=4,如果要使用CPU训练则设为–gpu=-1.

–num_epoch : 训练轮数,一般设置为500,这里我已经将代码中的epoch设置为500了,所以可以不用指定。

–batch : 批大小,一般设置为32。

–lr : 学习率,一般设置为10e-4.

–model : 模型名称,可选的有: BBDNN、BBDNN_noBN、BBDNN_dropout、BBDNN_dropBN、BBDNN_dropBN_bn。具体的模型可以在main.py中看到。

–train : 是否是训练阶段,即是否要保存模型。如果只是测试阶段,则指定该参数为test,否则会保存训练过程中生成的模型。

使用说明:

首先将要用到的模型和数据放在同一个文件夹下,并且需要在main.py中指定该文件夹路径。

然后将train.py和test.py放在同一个文件夹下,并且在main.py中指定该文件夹路径。

最后使用python main.py + 具体选项进行训练或测试。

运行时注意事项:

如果要使用GPU训练,则需要在运行前执行下面的命令:

CUDA_VISIBLE_DEVICES=[gpu id] python main.py + 具体选项。

如果要使用CPU训练,则直接执行下面的命令:

python main.py + 具体选项。<|file_sep flycatcher/dataset/UCF101/UCF-101/images/
flycatcher/dataset/UCF101/UCF-101/train_list.txt
flycatcher/dataset/UCF101/UCF-101/test_list.txtliliang2016/2017_10_24= v1.x

### **Training**

For training our model on UCF101 dataset (with spatial-temporal jittering), run:

`python train.py –train_dir=`

For training our model on HMDB51 dataset (with spatial-temporal jittering), run:

`python train.py –train_dir=`

For training our model on HMDB51 dataset (without spatial-temporal jittering), run:

`python train.py –train_dir=`

where « should point to folder containing subfolders named ‘images’ and ‘annotations’.

### **Testing**

For testing our model on UCF101 dataset (with spatial-temporal jittering), run:

`python test.py –test_dir=`

For testing our model on HMDB51 dataset (with spatial-temporal jittering), run:

`python test.py –test_dir=`

For testing our model on HMDB51 dataset (without spatial-temporal jittering), run:

`python test.py –test_dir=`

where « should point to folder containing subfolders named ‘images’ and ‘annotations’.

### **Model**

Our pre-trained models can be downloaded from https://drive.google.com/drive/folders/13kGjg8uyWkeN7YfXvZPXyAwyd9QnIbTm?usp=sharing.

liliang2016/2017_10_24<|file_sepusually you should change these path before using this code:

datasetPath = '/home/flycatcher/dataset/Something-Something-V1/'

savePath = '/home/flycatcher/exp/mv'

modelPath = '/home/flycatcher/exp/mv/model/'liliang2016/2017_10_24<|file_sep whoosh==2.7.* # For text search index.
scikit-image==0.* # For image processing.
matplotlib==2.* # For plotting.
scikit-learn==0.* # For computing accuracy metrics.
pyyaml==4.* # For configuration files.
pillow==4.* # For image processing.
scipy==1.* # For signal processing.
tensorflow-gpu==1.*
keras==2.*
tqdm==4.*
opencv-python==4.*
scikit-video==1.*
imutils==0.*
numpy==1.*
PIL==6.*

liliang2016/2017_10_24<|file_sepsys.path.append('D:/dataset/')
sys.path.append('D:/dataset/code/')
sys.path.append('D:/dataset/code/codes_for_papers/BBDNN/')
sys.path.append('D:/dataset/code/codes_for_papers/BBDNN/tensorflow/')
sys.path.append('D:/dataset/code/codes_for_p